当前位置: 首页 > 面试题库 >

每秒执行一次Ajax请求

周和志
2023-03-14
问题内容

我有一个ajax调用到一个php文件。我正在收到结果。现在,我正在研究是否有可能使ajax请求每1秒自动执行一次。我将结果发布到名为的输入字段中hidden。如何每三秒钟执行一次ajax调用而不必调用该函数?

    $.ajax({
            type: 'POST',
            url: 'increment.php',
            data: $(this).serialize(),
            dataType: 'json',
            success: function (data) {
                    $('#hidden').val(data);// first set the value

            }
    });

问题答案:

您可能要考虑的是服务器发送事件(SSE)

这是一种HTML5技术,JavaScript可以通过该技术“
长期轮询
”服务器端点(您的PHP文件)以查看是否发生了任何更改。长轮询基本上是JS(我不确定它是否使用Ajax或其他技术)在每秒向端点发送一个请求的地方

您可以这样尝试:

#/your_js
var evtSource = new EventSource("increment.php");
evtSource.onmessage = function(e) {
    $('#hidden').val(e.data);
}

要发送数据,您可以进行一个ajax调用,该调用将把更新后的JSON对象发送到服务器,就像您这样:

  $(document).on("click", ".your_object", function(data) {
     $.ajax({
                type: 'POST',
                url: 'increment.php',
                data: $(this).serialize(),
                dataType: 'json'
        });
   });

这只会在您执行事件时打开Ajax请求,并且您的应用将每秒“侦听”响应。如您所知,Ajax长轮询是超级资源密集型的,因此,如果您想要真正的“实时”技术,则最好查看Web套接字的内容,但是无论哪种方式,这将是一个效率更高的系统不仅仅是对所有内容都使用纯ajax

需要注意的是-您必须更改increment.php以处理不同的响应类型



 类似资料:
  • 问题内容: 我有这段代码,但是当有人在我的网站上时,值可能会更改。我需要每30秒左右更新#finance div。能做到吗? 问题答案: 您可以将代码放在这样的单独函数中: 然后设置一个计时器,每30秒调用一次该函数: 祝好运!;)

  • 问题内容: 请查找每10秒钟重复一次的更新代码。但是,问题在于它每10秒在屏幕上创建一个新的GUI,而不是仅每10秒更新一次数据。请您指教 问题答案: 您只有一门课,Learningfromscrach。在其中,您具有主要功能。在主要功能内,您将创建 另一个 Learningfromscrach 实例 ,该 实例 现在传递给计时器,每10秒运行一次。当它在10秒内运行时,它会创建另一个Learni

  • 我想每10秒执行一段代码。我在这个论坛上找到了一个例子,但我的实现有一些问题。 我得到这个错误,指向:

  • 问题内容: 我想做的是检索一个PHP文件的内容,并每60秒将它插入一个div中,基本上刷新了动态div。到目前为止,我已经提出了以下代码,但是它似乎没有用。代码就是这样,除了MYSQL登录外,没有什么额外的。 PHP抢: 原始的PHP代码是相同的,包含在div中,其id属性为’ajax_table’。 JavaScript是: 那是在请求另一个php页面的页面上。 问题答案: 如何使用类似jQue

  • 问题内容: 我从修改了自己需求的网站上获得了此代码: 在test.php中: 所以我想在链接div中每5秒调用一次test.php。我该怎么做呢? 问题答案: 试试看 希望这可以帮助。

  • 问题内容: 我有一个javascript函数,我希望在JSF 2中进行每次异步回发后执行。 我已执行以下操作以确保执行此每整页回发: 我需要执行此操作的原因是为了解决第三方JSF组件库中的故障,因此我无法在服务器呈现阶段中进行任何修改来对此组件执行此操作。 我可能找不到有关此问题的信息,可能是因为我使用了不正确的术语。我曾经是ASP.NET开发人员,我将这些术语称为“整页回发”和“部分回发”,而其