日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
javascript小技巧:同步服務(wù)器時(shí)間、同步倒計(jì)時(shí)

之前在網(wǎng)上看到有人提問(wèn),如何在頁(yè)面上同步顯示服務(wù)器的時(shí)間,其實(shí)實(shí)現(xiàn)方法有幾種,可能 一般人立馬就想到可以使用Ajax每隔一秒去請(qǐng)求服務(wù)器,然后將服務(wù)器獲取到時(shí)間顯示在頁(yè)面上,這樣雖然能夠?qū)崿F(xiàn),但存在一個(gè)很大的問(wèn)題,那就是每隔一秒 去請(qǐng)求服務(wù)器,這樣如果用戶(hù)多了,服務(wù)器就會(huì)崩潰(內(nèi)存占用率會(huì)很大),所以在我看來(lái),這種方法不可行,我這里給出一種解決方案,能夠?qū)崿F(xiàn)同步服務(wù)器時(shí)間、同步倒計(jì)時(shí),卻不占用服務(wù)器太多資源,下面我給寫(xiě)實(shí)現(xiàn)的思路

在景東等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣,外貿(mào)網(wǎng)站制作,景東網(wǎng)站建設(shè)費(fèi)用合理。

***步,當(dāng)用戶(hù)***次瀏覽頁(yè)面時(shí),服務(wù)器首先獲取當(dāng)前時(shí)間并顯示在頁(yè)面上(比如:顯示在ID為timebox span中)

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

第三步,顯示第二步計(jì)算的時(shí)間

是不是很簡(jiǎn)單,總結(jié)成一句話(huà)就是:以服務(wù)器時(shí)間為初始值,然后在頁(yè)面上自動(dòng)每隔一秒就累加一秒生成新時(shí)間,這樣就能保證與服務(wù)器時(shí)間同步了,誤差基本在幾秒內(nèi),應(yīng)該沒(méi)關(guān)系了,好了看一下實(shí)現(xiàn)的代碼吧:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

<span id="timebox">11:21:55span> //***次將服務(wù)器時(shí)間顯示在這里

<script type="text/javascript">

    $(function () {

        var oTime = $("#timebox");

        var ts = oTime.text().split(":", 3);

        var tnums = [parseInt(ts[0]), parseInt(ts[1]), parseInt(ts[2])];

        setInterval(function () {

            tnums = getNextTimeNumber(tnums[0], tnums[1], tnums[2]);

            showNewTime(tnums[0], tnums[1], tnums[2]);

        }, 1000);

        function showNewTime(h, m, s) {

            var timeStr = ("0" + h.toString()).substr(-2) + ":"

                            + ("0" + m.toString()).substr(-2) + ":"

                            + ("0" + s.toString()).substr(-2);

            oTime.text(timeStr);

        }

        function getNextTimeNumber(h, m, s) {

            if (++s == 60) {

                s = 0;

            }

            if (s == 0) {

                if (++m == 60) {

                    m = 0;

                }

            }

            if (m == 0) {

                if (++h == 24) {

                    h = 0;

                }

            }

            return [h, m, s];

        }

    });

script>

代碼很簡(jiǎn)單在此就不多作說(shuō)明(我上面只顯示時(shí)分秒,大家也可以加上日期,加上日期可在當(dāng)h==0時(shí),直接從服務(wù)器獲取一個(gè)日期或完整的時(shí)間,作為一次時(shí)間的校對(duì)),不懂的可以在下面評(píng)論,我會(huì)及時(shí)回復(fù)的,然后按照這種思路來(lái)實(shí)現(xiàn)一下同步倒計(jì)時(shí),首先說(shuō)明一下,什么是同步倒計(jì)時(shí),就是類(lèi)似秒殺一樣,設(shè)置一個(gè)結(jié)束時(shí)間,然后計(jì)算當(dāng)前時(shí)間與結(jié)束時(shí)間之間間隔,而且必需保證在不同的電腦、瀏覽器上顯示的倒計(jì)時(shí)時(shí)間均相同,實(shí)現(xiàn)代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

DOCTYPE html>

<html>

<head>

    <title>同步倒計(jì)時(shí)title>

    <script type="text/javascript" src="jquery-1.4.4.min.js">script>

head>

<body>

    <span id="timebox">1天00時(shí)00分12秒span>

    <script type="text/javascript">

        $(function () {

            var tid = setInterval(function () {

                var oTimebox = $("#timebox");

                var syTime = oTimebox.text();

                var totalSec = getTotalSecond(syTime) - 1;

                if (totalSec >= 0) {

                    oTimebox.text(getNewSyTime(totalSec));

                } else {

                    clearInterval(tid);

                }

            }, 1000);

            //根據(jù)剩余時(shí)間字符串計(jì)算出總秒數(shù)

            function getTotalSecond(timestr) {

                var reg = /\d+/g;

                var timenums = new Array();

                while ((r = reg.exec(timestr)) != null) {

                    timenums.push(parseInt(r));

                }

                var second = 0, i = 0;

                if (timenums.length == 4) {

                    second += timenums[0] * 24 * 3600;

                    i = 1;

                }

                second += timenums[i] * 3600 + timenums[++i] * 60 + timenums[++i];

                return second;

            }

            //根據(jù)剩余秒數(shù)生成時(shí)間格式

            function getNewSyTime(sec) {

                var s = sec % 60;

                sec = (sec - s) / 60; //min

                var m = sec % 60;

                sec = (sec - m) / 60; //hour

                var h = sec % 24;

                var d = (sec - h) / 24;//day

                var syTimeStr = "";

                if (d > 0) {

                    syTimeStr += d.toString() + "天";

                }

                syTimeStr += ("0" + h.toString()).substr(-2) + "時(shí)"

                            + ("0" + m.toString()).substr(-2) + "分"

                            + ("0" + s.toString()).substr(-2) + "秒";

                return syTimeStr;

            }

        });

    script>

body>

html>

為了保證倒計(jì)時(shí)的精確度,我采用了先將倒計(jì)時(shí)時(shí)間間隔統(tǒng)一計(jì)算成秒,然后減1秒再重新生成時(shí)間格式,當(dāng)然也可以按照上面時(shí)間同步的例子,直接進(jìn)行時(shí)間減少,方法很多,我這個(gè)不一定是***的,歡迎大家交流,謝謝!


文章題目:javascript小技巧:同步服務(wù)器時(shí)間、同步倒計(jì)時(shí)
當(dāng)前鏈接:http://www.dlmjj.cn/article/dhshdoh.html