动态服务器时间

2024-04-11

据我了解,我无法使用脚本中的 settimeout() 在 IE 中获取动态服务器时间。我发现了这个例子:

function  timeExam(){

    $.ajax({
    url : "inc/clock.php",
    success : function (data) {
    $("#clock_time").html(data);
    }
    });

           var func = function()
            {
                timeExam();
            }

            setTimeout(func, 1000);
    }


            <body onload="timeExam();">
                bla bla bla
            </body>

也许有可能让它发挥作用?

如果没有,您能否建议我一个可在所有浏览器中使用的具有服务器时间的动态时钟?我尝试使用prototype.js制作时钟,但它与IE8中的jquery UI冲突(错误地显示了selectmenu)。我添加了脚本中没有冲突代码,但它没有用......必须删除prototype.js


您的脚本的作用是轮询服务器上 inc/clock.php 上的脚本,并(大约)每秒用脚本的输出替换 #clock_time 元素的内容。 如果您有一个 id 为clock_element 的元素和位于 yoursite.tld/inc/clock.php 的脚本,这应该可以工作

但是,我不同意不断轮询服务器的当前时间。只需将时间同步到您的网络服务器一次就足够了。除了一些细微的差异之外,这应该可以让您的时钟在一段时间内保持良好的同步。如果您的网络应用程序运行时间超过几个小时或几天,您应该定期重新同步时钟(每天或每周一次即可)。

使用 Date 对象来跟踪客户端上的服务器时间。只需从clock.php的输出创建一个Date对象(作为先决条件的有效日期输出),并根据您将时钟与远程服务器同步的时间增量定期(例如每秒)更新您的clock_element。

这里有一些粗略的代码,未经测试,可能有一些语法错误,但简要说明了你应该做什么:

function setupServerClock( clock_element, remote_time_url, remote_update_interval, local_update_interval ) {
    var w = window;
    // client time on resync
    var ct = new Date();
    // server time on resync
    var st = new Date();
    // setup resync
    w.setInterval( function() {
        jQuery.ajax( {
            url: remote_time_url,
            success: function (data) {
                ct = new Date();
                st = new Date(data);
            }
        });
    }, remote_update_interval);
    // setup local clock display
    w.setInterval( function() {
        // the time passed on our local machine since the last resync
        var delta = new Date() - ct;
        // we assume the same time passed at the server
        // (yeah, I know, spacetime might not be the same at the servers 
        // place and off the shelve clocks are pretty inaccurate)
        var clock = st - 0 + delta; // - 0 to convert to microsecond timestamp
        jQuery(clock_element).html(new Date(clock));
    }, local_update_interval);
}

用类似的方式调用它:

setupServerClock( jQuery('#clock_element'), 'inc/clock.php', 1000 * 60 * 60, 1000 );

这将使用从 yourdomain.tld/inc/clock.php 返回的值将时钟设置为写入#clock_element,每小时重新同步时钟并每秒更新时钟的本地表示。

哦,如果定期重新同步确实会导致时钟“跳跃”,您可以考虑简单地向用户提供反馈,表明他的时钟已更新,例如像这样

    w.setInterval( function() {
        jQuery(clock_element).html('resyncing clock...');
        jQuery.ajax( {
            url: remote_time_url,
            success: function (data) {
                ct = new Date();
                st = new Date(data);
            }
        });
    }, remote_update_interval);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态服务器时间 的相关文章

  • TinyMCE 的 addButton() 函数中所有可能的设置属性是什么?

    The 文档 http www tinymce com wiki php API3 method tinymce Editor addButton对此还不是很清楚 name 字符串 要添加的按钮名称 设置 对象 带有标题 cmd 的设置对象
  • 通过 declarativeNetRequest + extensionPath 重定向时获取原始 URL

    我需要在导航时但在用户从使用设置的规则重定向之前获取 chrome 选项卡的 urldeclarativeNetRequest 目前 用户可以使用上下文菜单添加规则 当尝试访问过滤的主机时 它将被重定向到内部扩展页面 chrome cont
  • (IE 特定)如何确定输入的文本是否比输入元素的宽度长

    这是所有版本 IE 特有的问题 在所有其他浏览器中 当文本溢出时 输入元素的scrollWidth 大于输入元素的clientWidth 有没有办法确定IE中输入字段中的文本超出了输入元素宽度的键 下面是一个检查 clientWidth 与
  • 图表js不显示

    我正在尝试使用 Charts js 创建一个简单的折线图 当我运行下面的代码时 没有出现图表 我究竟做错了什么 我正在关注这个教程http www chartjs org docs latest getting started http w
  • 如何将毫秒转换为可读的日期?

    下列 new Date 1324339200000 toUTCString Outputs Tue 20 Dec 2011 00 00 00 GMT 我需要它返回Dec 20 除了我可以使用的更好的方法之外toUTCString 我正在寻找
  • 如何使用 javascript/ASP.NET/CSS 旋转和淡入淡出背景图像

    我需要随机淡入淡出背景图像 这将是一个定时函数 例如每 5 秒一次 我需要使用 ASP NET Javascript CSS 或全部三者来完成此操作 请大家帮帮我 谢谢 Cycle 一个 jQuery 插件 是一个非常灵活的图像旋转解决方案
  • 将 MVC 操作结果发送到打印机

    我有一个带有操作的控制器 SomeController ActionToBePrinted ActionToBePrinted 返回一个 html 视图 当按下按钮时 从普通的 mvc razor 视图调用此操作 当按下按钮时 我将如何将视
  • 使用 Moment.js 从 ISO 字符串中提取 utcOffset

    使用 moment js 我尝试从 ISO 日期字符串中提取偏移量 以便稍后在格式化纪元时间戳时使用该偏移量 以确保时间戳的转换位于同一时区 即使字符串中的偏移量为 0400 结果始终为0 var currentTime 2015 03 1
  • 检测 JavaScript 版本

    如何检测浏览器支持的 JavaScript 版本 如果有 我想检查 ECMAScript 3 ECMAScript 5 和 ECMAScript 6 注意 我想避免已弃用的language tag 这里有一个很好的参考给你 http www
  • 如何验证单选按钮?

    我的 Rails 应用程序中有一个单选按钮 我想编写一个 java 脚本代码 在未选择任何选项时验证这一点 在你的 votes 类中做类似的事情 class Myvotes lt ActiveRecord Base validates vo
  • 如何使用谷歌地图检测一个点是否在多边形内部?

    我想检测到google maps LatLng是在一个里面google maps Polygon 我怎样才能做到这一点 Cheers 你可以使用这个谷歌地图V3 google maps geometry poly containsLocat
  • 如何为多个元素添加Class?

    我正在使用这段 javascript 向多个元素添加一个类 我试图引用多个 div 并向它们添加类 它只适用于第一个 JavaScript
  • 节省页面加载时间的提示[重复]

    这个问题在这里已经有答案了 我的问题 削减那些不必要的 kb 并使页面加载速度更快的最佳方法是什么 全部是什么优化实践 编码实践 在js php中 如果执行可以使您的页面更轻 为什么我问这个 我读了这篇关于 jquery js 与 jque
  • setTimeout() 的问题

    这是我的代码 我想要它做的是写 0 等待一秒 写 1 等待一秒 写 2 等待一秒 等等 而是写 5 5 5 5 5 for i 0 i lt 5 i setTimeout document write i 1000 http jsfiddl
  • 使用 ngx-translate 时更改 URL

    当有人使用 ngx translate 单击所选语言时 我尝试更改 URL 我想我应该通过订阅语言更改事件然后修改当前的 url 以反映所选的语言来做到这一点 因为我是新手 所以我不确定是否需要服务来做到这一点 或者可能是另一种解决方法 我
  • 如何设置第三方 cookie

    我如何设置第三方 cookie 我有要求设置cookie 并且cookie将在访问的网站中启用 就像我在访问cde com或def com或ghi com时在abc com中设置cookie一样 所以设置的cookie将在所有网站上获取 我
  • 错误“无法将‘动态’类型的值分配给‘字符串’类型的变量。”在 Dart 2.2 中

    自上次 dart 更新 2 2 我收到这个错误 dynamic 类型的值不能分配给 dynamic 类型的变量 细绳 这对我来说没有多大意义 代码非常简单 class EmployeeMirror EmployeeMirror this i
  • 如何找出javascript中加载了哪些javascript?

    继另一个问题的评论之后 我问自己是否有办法获取页面上加载的所有 js 代码的列表 就像 Firebug 或 chrome Inspector 所做的那样 有没有一种纯javascript的方法 一种方法是抓取脚本标签 但这样你可能会错过动态
  • 对于调用另一个异步函数的异步函数,玩笑测试失败

    我正在尝试测试一个使用另一个异步函数返回的数据的异步函数 这是解释我的问题的代码 StudentInfo js export async function getData studentData imported from another
  • 使用来自Processing-JS的JSON

    我想使用编写一个应用程序处理 JS http processingjs org 并且我希望能够使用服务器端数据加载它 我还没有编写服务器端 所以我可以使用任何东西 但似乎明显的 AJAX 事情是使用 JSON 将数据上传到页面中 如何从我的

随机推荐