lzy4223
V2EX  ›  问与答

關於知乎答案輸入欄的自動保存觸發機制

  •  
  •   lzy4223 · Oct 1, 2015 · 2842 views
    This topic created in 4055 days ago, the information mentioned may be changed or developed.

    最近在研究知乎答案輸入欄。

    根據他的“保存中”和“已保存”的提示推測,估計是在按鍵後 3 到 5 秒,如果沒有繼續按鍵,就會觸發自動保存。

    如果這樣的話,一個用戶輸入一段文字或一篇文字,有可能會觸發幾十甚至上百次的自動保存。

    想問的是,對於一般小型網站來說,對服務器會否是一個很重的負擔?

    如果是,有否其他辦法來實現這個自動保存的問題。

    10 replies  •  2015-10-02 17:24:50 +08:00
    matsuijurina
    matsuijurina
    Oct 1, 2015 via Android
    1
    用 angularjs 就能做,负担在你的本地吧
    lzy4223
    lzy4223
    OP
    Oct 1, 2015
    2
    @matsuijurina
    意思說,自動保存的內容都先存在用戶本地?只需要最後關閉才發送到服務器,是這樣嗎?
    abelyao
    abelyao
    Oct 1, 2015 via iPhone❤️1
    3
    @lzy4223 你可以打开网络监视,看看是否每次保存都与服务器通讯。
    sparanoid
    sparanoid
    Oct 1, 2015 via iPhone❤️1
    4
    也许是 localStorage ?
    TakanashiAzusa
    TakanashiAzusa
    Oct 1, 2015❤️1
    5
    基本上应该都是放在本地先的吧。。反正一般用户不会没事去清 localStorage 。先本地存储。过段时间再传一次到服务器,我觉得应该是这样。
    lvye
    lvye
    Oct 1, 2015 via iPhone❤️1
    6
    写的操作是远小于读,同时写的操作就更少了,只有用户有操作时才好触发自动保存机制。
    如果觉得频繁,可以用 localstorage ,并加大请求服务器的时间间隔。
    bilok
    bilok
    Oct 1, 2015❤️1
    7
    wordpress 也是类似边写边存,看样子文件未发布之前应该是存储在 local 的
    lzy4223
    lzy4223
    OP
    Oct 2, 2015
    8
    @sparanoid
    @TakanashiAzusa
    @lvye
    想請教一下, localStorage 是跟瀏覽器儲存的嗎,就是不同瀏覽器
    我剛剛試了用 chrome 在 zhihu 輸入內容,等自動保存(沒有關閉輸入窗口)。然後 safari 刷新“我的草稿”頁面,能夠立刻看到更新。這是否說明 zhihu 每次自動保存是直接存到服務器的?
    lzy4223
    lzy4223
    OP
    Oct 2, 2015
    9
    @abelyao
    看到有通訊,是一個類似 ddos.qq 這樣的域名的服務器,不曉得是保護系統的數據通訊,還是儲存的服務器。
    TakanashiAzusa
    TakanashiAzusa
    Oct 2, 2015❤️1
    10
    看了下一下知乎的,没有用到 localStorage ,他就是每次键盘事件开始监听,一定时间内没有输入了就把草稿扔到服务器上去。
    http://www.zhihu.com/answer/draft/save
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1799 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:46 · PVG 17:46 · LAX 01:46 · JFK 04:46
    ♥ Do have faith in what you're doing.