jquery – 每秒执行一次Ajax请求

参见英文答案 > jQuery Ajax request every 30 seconds3个
我对一个PHP文件进行了ajax调用.我收到了结果.现在我正在调查是否可以让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     

            }
    });

解决方法

你可能想要考虑的是 Server Sent Events(SSE)

这是一种HTML5技术,Javascript将“long-poll”作为服务器端点(您的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',dataType: 'json'
        });
   });

这只会在您执行事件时打开Ajax请求,并且您的应用程序将每秒“监听”响应.如您所知,Ajax长轮询是超级资源密集型的,因此如果您想要真正的“实时”技术,那么查看Web套接字的东西会更好,但不管怎样,这将是一个更高效的系统而不仅仅是使用普通的ajax

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

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...