<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Javascript實現商品秒殺倒計時(時間與服務器時間同步)_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 21:43:41
        文檔

        Javascript實現商品秒殺倒計時(時間與服務器時間同步)_javascript技巧

        Javascript實現商品秒殺倒計時(時間與服務器時間同步)_javascript技巧:現在有很多網站都在做秒殺商品,而這其中有一個很重要的環節就是倒計時。 關于倒計時,有下面幾點需要注意: 1.應該使用服務器時間而不是本地時間(本地時間存在時區不同、用戶自行設置等問題)。 2.要考慮網絡傳輸的耗時。 3.獲取時間時可直接從AJAX的響
        推薦度:
        導讀Javascript實現商品秒殺倒計時(時間與服務器時間同步)_javascript技巧:現在有很多網站都在做秒殺商品,而這其中有一個很重要的環節就是倒計時。 關于倒計時,有下面幾點需要注意: 1.應該使用服務器時間而不是本地時間(本地時間存在時區不同、用戶自行設置等問題)。 2.要考慮網絡傳輸的耗時。 3.獲取時間時可直接從AJAX的響
        現在有很多網站都在做秒殺商品,而這其中有一個很重要的環節就是倒計時。

        關于倒計時,有下面幾點需要注意:

        1.應該使用服務器時間而不是本地時間(本地時間存在時區不同、用戶自行設置等問題)。

        2.要考慮網絡傳輸的耗時。

        3.獲取時間時可直接從AJAX的響應頭中讀取(通過getResponseHeader('Date')來獲得),服務器端不需要專門寫時間生成腳本。

        過程分析:

        1.從服務器讀到一個時間戳之后便開始計時,不考慮網絡傳輸的耗時:


        圖中的各項標注分別是(上面的時間線采用標準時間,與服務器和頁面的時間均無關):

        start——頁面項服務器發起AJAX請求時的時間。

        www_start——服務器響應頁面的請求并返回時間戳給頁面的時間。

        pc_start——頁面接受到服務器返回的時間戳并開始計時的時間。

        www_end——服務器倒計時結束的時間。

        pc_end——頁面倒計時結束的時間,同時也是用戶在倒計時結束那一刻點擊按鈕的時間。

        end——服務器接收到用戶點擊信息的時間。

        可以看出,即使在倒計時結束的那一刻(也就是秒殺開始那一刻)用戶就立即點擊鼠標,也會比實際開始搶拍的時間(www_end,即服務器倒計時結束的時間)晚一些(可以很容易的看出,這個時間差正好等于pc_start - start,也就是AJAX從開始發送到接收到響應信息的耗時)。如果有些內行在頁面倒計時結束前用腳本發送請求,那么其他用戶可就虧大了。所以,我們要解決掉這個時間誤差的問題。

        2.為了解決時間誤差的問題,我們將把頁面倒計時的時間縮短一小截(由上面的分析可以得出,這一小截正好等于pc_start - start),使得用戶在倒計時結束時發送給服務器的搶拍信息正好在服務器倒計時結束時被接收到:

        圖中的各項標注與Pic.1中相同(時間線采用標準時間,與服務器和頁面的時間均無關),新增的兩項標注的含義如下:

        old_pc_end——在未對網絡傳輸耗時進行處理的情況下pc_end的時間。

        old_end——在未對網絡傳輸耗時進行處理的情況下end的時間。

        由Pic.2可見,網絡傳輸耗時造成的時間誤差已經完全被彌補了,彌補的方法是“將倒計時結束的時間提前pc_start - start”。但是解決了網絡傳輸耗時造成的誤差問題,還有用戶電腦時間和服務器時間不相同的問題,下面我們繼續討論。

        3.用戶的電腦時間和服務器時間一定是有差異的,甚至差幾個時區,怎么解決這個問題呢?方法的要點如下:

        A. 當頁面接收到服務器返回的時間戳www_t時,立即開始計時。

        B. 當頁面接收到服務器返回的時間戳www_t時,立即計算本地時間和服務器返回的時間戳的時間差t=new Date().getTime() - www_t*1000。

        C. 仍然使用new Date().getTime()來計時,而不是使用setInterval()函數(計時器很不穩定,誤差也很大),但時間的顯示與程序的邏輯必須基于本地時間和上一步(B中)求得的時間偏差t。

        結論要點:

        頁面從接收到服務器響應的時間戳開始計時,計時的時長應減掉AJAX從發送到接收整個過程的耗時,計時過程則使用本地時間來實現(本地時間+時間偏差)。

        有任何疑問或建議請留言,謝謝!

        javascript小技巧:同步服務器時間、同步倒計時

        之前在網上看到有人提問,如何在頁面上同步顯示服務器的時間,其實實現方法有幾種,可能一般人立馬就想到可以使用Ajax每隔一秒去請求服務器,然后將服務器獲取到時間顯示在頁面上,這樣雖然能夠實現,但存在一個很大的問題,那就是每隔一秒去請求服務器,這樣如果用戶多了,服務器就會崩潰(內存占用率會很大),所以在我看來,這種方法不可行,我這里給出一種解決方案,能夠實現同步服務器時間、同步倒計時,卻不占用服務器太多資源,下面我給寫實現的思路

        第一步,當用戶第一次瀏覽頁面時,服務器首先獲取當前時間并顯示在頁面上(比如:顯示在ID為timebox span中)

        第二步,設置一個每隔一秒就計算新的時間(新時間以服務器時間為初始值,然后每隔一秒累加一秒并生成新的時間)

        第三步,顯示第二步計算的時間

        是不是很簡單,總結成一句話就是:以服務器時間為初始值,然后在頁面上自動每隔一秒就累加一秒生成新時間,這樣就能保證與服務器時間同步了,誤差基本在幾秒內,應該沒關系了,好了看一下實現的代碼吧:

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Javascript實現商品秒殺倒計時(時間與服務器時間同步)_javascript技巧

        Javascript實現商品秒殺倒計時(時間與服務器時間同步)_javascript技巧:現在有很多網站都在做秒殺商品,而這其中有一個很重要的環節就是倒計時。 關于倒計時,有下面幾點需要注意: 1.應該使用服務器時間而不是本地時間(本地時間存在時區不同、用戶自行設置等問題)。 2.要考慮網絡傳輸的耗時。 3.獲取時間時可直接從AJAX的響
        推薦度:
        標簽: js 倒計時 時間和
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 成人免费网站在线观看| 久久久久久国产a免费观看不卡| 男的把j放进女人下面视频免费| 国产成人亚洲精品影院| 乱淫片免费影院观看| 亚洲精品成人久久久| 国产精品1024在线永久免费| 国产精品亚洲美女久久久| yellow免费网站| 亚洲阿v天堂在线| 午夜精品射精入后重之免费观看| 无码乱人伦一区二区亚洲| 99精品免费观看| 亚洲一级毛片免费在线观看| 成人免费无毒在线观看网站| 偷自拍亚洲视频在线观看| 亚洲精品国自产拍在线观看 | 亚洲视频一区二区三区四区| 啦啦啦中文在线观看电视剧免费版 | 全部免费a级毛片| 亚洲成人免费网址| 亚洲AV综合色区无码二区爱AV| 四虎成人免费网站在线| 一级中文字幕免费乱码专区| 国产国拍亚洲精品mv在线观看| 曰批全过程免费视频网址| 亚洲av色香蕉一区二区三区蜜桃| 国产成人无码a区在线观看视频免费| 二级毛片免费观看全程| 91情国产l精品国产亚洲区 | 一级毛片**不卡免费播| 国产亚洲玖玖玖在线观看| 亚洲毛片av日韩av无码| 四虎国产成人永久精品免费| 亚洲愉拍一区二区三区| 亚洲精品无码你懂的网站| 亚洲免费视频观看| 全部一级一级毛片免费看| 久久综合亚洲色一区二区三区| 日韩毛片无码永久免费看| 国产无遮挡裸体免费视频在线观看|