-1

我需要一个将刷新功能的脚本:

$ping, $ms

每 30 秒,显示一个计时器,我基本上得到了这个脚本:

window.onload=function(){
var timer = {
        interval: null,
        seconds: 30,

        start: function () {
            var self = this,
            el = document.getElementById('time-to-update');

            el.innerText = this.seconds;

            this.interval = setInterval(function () {
                self.seconds--;

                if (self.seconds == 0) 
                    window.location.reload();

                el.innerText = self.seconds;
            }, 1000);
        },

        stop: function () {
            window.clearInterval(this.interval)
        }
}

timer.start();
} 

但它刷新了整个页面,而不是我希望它刷新的功能,所以,任何帮助都会被应用,谢谢!

编辑:我忘了提到脚本必须无限循环

4

2 回答 2

0

这里重新加载整个页面:

window.location.reload();

现在您似乎想要做的是重新加载页面的某些部分,这些部分是由 php 函数生成的。不幸的是 php 是服务器端的,所以这意味着你不能让客户端浏览器运行 php。您的服务器运行 php 以生成浏览器可以理解的内容。在 Web 浏览器中打开您使用 php 创建的页面并选择查看源代码,您就会明白我的意思。

这是您需要做的:

  1. 使您的两个函数 ping 和 ms 可通过 ajax 访问
  2. 而不是window.location.reload()调用jQuery.ajax. 成功写入您的页面

这就是我认为处理这个问题的理想方法......我还没有看到你的问题的 php 方面,但无论如何:

  1. 创建一个名为 ping.php 的文件并将所有 ping 函数代码放入其中。女士同上
  2. 在调用这些函数的原始 php 文件中,在您想要调用函数的每个点创建一个 div。给他们适当的ID。例如:“ping_contents”和“ms_contents”

    如果需要,您可以使用一些初始数据填充这些。

  3. 在你的 js 中加入如下内容:

    jQuery.ajax(
    {
        url     : url_of_ping_function,
        data    : {anything you need},
        type    : 'POST', //or 'GET'
        dataType: 'html',
        success : function(data)
        {
             document.getElementById("ping_contents").innerHTML = data;
        }    
    });
    

为另一个功能做另一个

于 2013-08-22T05:52:21.313 回答
0

你想要的是AJAX异步 JavaScript 和 XML

您可以为此使用jQuery

我可以在这里举一个例子,但是在互联网上可以找到很多信息。过去我编写了自己的 AJAX 代码,但自从我开始使用 jQuery 后,一切都变得简单了很多。查看我提供的 jQuery 链接。有一些有用的信息。这个示例代码可能是最容易解释的。

$.ajax({
  url: "test.php"
}).done(function() {
  alert("done");
});

某个时刻,例如单击按钮,文件 test.php 被执行。完成后,会显示一个带有“完成”文本的警告框。这是基本的。

于 2013-08-22T05:55:22.320 回答