为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery,简单的轮询示例

jQuery,简单的轮询示例

德玛西亚99 2019-08-06 14:37:01
jQuery,简单的轮询示例我正在学习jQuery,我正在尝试找到一个简单的代码示例,它将针对某个条件轮询API。(即每隔几秒请求一个网页并处理结果)我熟悉如何在jQuery中使用AJAX,我似乎无法找到让它在“计时器”上执行的“正确”方式。
查看完整描述

4 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

function doPoll(){
    $.post('ajax/test.html', function(data) {
        alert(data);  // process results here
        setTimeout(doPoll,5000);
    });}


查看完整回答
反对 回复 2019-08-06
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

代码片段:

(function poll() {
    setTimeout(function() {
        $.ajax({
            url: "/server/api/function",
            type: "GET",
            success: function(data) {
                console.log("polling");
            },
            dataType: "json",
            complete: poll,
            timeout: 2000
        })
    }, 5000);})();

这将仅在ajax请求完成后才生成下一个请求。

上述内容的变体,将在第一次调用等待/超时间隔之前立即执行。

(function poll() {
    $.ajax({
        url: "/server/api/function",
        type: "GET",
        success: function(data) {
            console.log("polling");
        },
        dataType: "json",
        complete: setTimeout(function() {poll()}, 5000),
        timeout: 2000
    })})();


查看完整回答
反对 回复 2019-08-06
?
catspeake

TA贡献1111条经验 获得超0个赞

来自ES6,

var co = require('co');var $ = require('jQuery');// because jquery doesn't support Promises/A+ specfunction ajax(opts) {
  return new Promise(function(resolve, reject) {
    $.extend(opts, {
      success: resolve,
      error: reject    });
    $.ajax(opts);
  }}var poll = function() {
  co(function *() {
    return yield ajax({
      url: '/my-api',
      type: 'json',
      method: 'post'
    });
  }).then(function(response) {
    console.log(response);
  }).catch(function(err) {
    console.log(err);
  });};setInterval(poll, 5000);
  • 不使用递归(函数堆栈不受影响)。

  • 在setTimeout-recursion需要尾调用优化的情况下不会受到影响。


查看完整回答
反对 回复 2019-08-06
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

function poll(){
    $("ajax.php", function(data){
        //do stuff  
    }); }setInterval(function(){ poll(); }, 5000);


查看完整回答
反对 回复 2019-08-06
  • 4 回答
  • 0 关注
  • 1212 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信