使用 JavaScript 和 jQuery 的简单长轮询示例

2023-11-25

我正在尝试创建一个实时网站分析仪表板,该仪表板使用 jQuery/JavaScript 异步创建到服务器的开放 HTTP 连接,以便在数据发生更新时轮询服务器。

显而易见的开始是使用XMLHttpRequest对象或 jQuery 的$.ajax方法发送GET or POST向服务器异步请求一些数据。

然而,除了使用一次发送一个请求之外setInterval方法每个30 seconds我不确定如何使与服务器的连接持久。基本上,我只想发送一个http请求并确保与服务器的连接保持打开状态以进行轮询!

我的示例代码与setInterval如下:

<div id="analytics"></div>
<script>
var analytics = document.getElementById('analytics');
setInterval(function(){
    $.ajax({ url: "http://server.com/", success: function(data){
        analytics.innerHTML = data;
    }, dataType: "json"});
}, 30000);
</script>

在网上搜索后,这就是我正在寻找的答案不使用 sockets.io nor WebSockets but does use jQuery通过利用其complete创建人工循环的方法:

<div id="analytics"></div>
<script>
var analytics = document.getElementById('analytics');
(function poll(){
    $.ajax({ url: "server", success: function(data){
        analytics.innerHTML = data;
    }, dataType: "json", complete: poll, timeout: 30000 });
})();
</script>

资料来源:Technoctave 的 Tian Davis:http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JavaScript 和 jQuery 的简单长轮询示例 的相关文章

随机推荐

  • python中四舍五入到小数点后两位

    我需要四舍五入 它应该是小数点后两位 尝试了以下方法 a 28 266 print round a 2 28 27 但期望值只有28 26 看来你需要floor import math math floor a 100 100 0 28 2
  • Android DroidGap 禁用后退按钮

    请问 有人建议我如何在使用时禁用后退按钮按下事件PhoneGap 我需要在我的范围内做点什么Activity DroidGap代码 用于控制后退按钮事件 甚至 下面的代码在我的中运行良好Activity 但与使用时不起作用DroidGap
  • Eclipse v4.7.1a:ant 构建损坏:启动配置 引用不存在的项目 <容器项目>

    看来自从日食之后v4 7 1a 全新安装 不再可能执行任何ant建造 每次失败时都会出现以下消息 Launch configuration
  • 身份 - 自定义用户验证器

    Helloes 我有一个 Net Core MVC 应用程序Identity并使用this指南我能够创建自定义用户验证器 public class UserDomainValidator
  • 如何在PHP中立即打印出echo?

    默认情况下 在整个页面执行完毕之前 它不会打印任何内容 有没有什么功能可以让它立刻冲出来 但不是通过调用ob end flush 多次 这不是我想要的 希望你们能抓住我吗 如果输出缓冲打开 那么刷新它是向浏览器输出任何内容的唯一方法 如果您
  • 在 Android 中存储 Facebook 凭据作为 Google Smart Lock 密码

    将 Facebook 凭证存储在 Google Smart Lock 密码中 我能够在 Smart Lock 密码中存储基本的用户名 密码凭据 有大量有关 Google 凭据的文档和示例 GoogleSignInAccount gsa si
  • “更新到 HEAD”的快捷方式

    有什么办法可以拥有 shortcut or icon for svn Update to HEADEclipse 中的一个项目 不是全部 这会让我的生活变得更加轻松 不过我的 php 项目很少 有时我会不小心点击 提交 在 OS X 上运行
  • 使用 lambda 表达式编译代码时出错

    我有以下代码 package com mongoDB import spark Spark public class HelloWorldSparkStyle public static void main String args Spar
  • 使用 matplotlib 绘制垂直线 [重复]

    这个问题在这里已经有答案了 我想用 Matplotlib 画一条垂直线 我正在使用axvline 但它不起作用 import sys import matplotlib matplotlib use Qt4Agg from ui courb
  • Java String.format 方法中的可变宽度

    我正在开发一个需要显示文本树的项目 我试图使用 Java 的 String format 方法来简化格式化过程 但在尝试应用可变宽度时遇到了麻烦 当前我有一个变量 一个 int 称为深度 我尝试执行以下操作 String format de
  • Javascript 类方法与属性

    我见过使用 Javascript 类的代码使用以下形式 例如 React class UserProfile extends Component state open false handleOpen gt this setState op
  • 如何使用 Karma Test Runner 显示渲染组件?

    我使用 cli 和默认值创建了一个新的 Angular 应用程序 v13 我替换了 app component html 文件以显示 4 个图像 这可以通过 npm start 很好地加载到浏览器中 当我运行 npm test 并运行检查这
  • 如何为ADFS配置Spring Boot Security OAuth2?

    有人成功配置 Spring Boot OAuth2 使用 ADFS 作为身份提供者吗 我成功地按照本教程操作了 Facebook https spring io guides tutorials spring boot oauth2 但 A
  • 如何找到 EventSystem.current.IsPointerOverGameObject 正在检测哪个对象?

    我在脚本中使用 EventSystem current IsPointerOverGameObject 并且 Unity 返回 True 即使我发誓指针下方没有 UI EventSystem 对象 如何找到有关 EventSystem 正在
  • Python:有没有办法用 Matplotlib 绘制“部分”曲面图?

    I wanted to plot a partial surface plot like the following one with Matplotlib 请注意 它不是 X Y 平面上的完整网格 而是在俯视图中缺少一个角 以下是我尝试过
  • 取消有关从多任务面板中删除应用程序的通知

    我管理一个ONGOING来自我的应用程序的通知 而不是来自服务 当我使用 结束 按钮从任务管理器终止应用程序时 通知消失 当我从多任务面板中删除应用程序时 应用程序被终止 但是通知仍然存在 我的问题是 如何捕获此事件以清除通知 当应用程序从
  • 当我使用 SUDS 来使用 Web 服务时绕过 SSL

    我正在使用 SUDS 来使用 Web 服务 我尝试如下 client Client wsdl url list of methods method for method in client wsdl services 0 ports 0 m
  • 奇怪的 for 循环语句[重复]

    这个问题在这里已经有答案了 我看到这个 for 循环 但不太明白为什么最后打印的是 2 为什么不是 3 a 0 1 2 3 for a 1 in a print a 1 out 0 1 2 2 The for循环使用a 1 as a 目标变
  • 你怎么称呼自 Unix 纪元以来的“天数”?

    我最初了解到Unix时间是自1970年1月1日00 00 00 UTC 以来经过的秒数 一天有24小时 这意味着unix时间戳每天都会增长86400 然后我听说了闰秒的概念 并认为这意味着也许在某些日子里 unix 时间戳会在一天内增长 8
  • 使用 JavaScript 和 jQuery 的简单长轮询示例

    我正在尝试创建一个实时网站分析仪表板 该仪表板使用 jQuery JavaScript 异步创建到服务器的开放 HTTP 连接 以便在数据发生更新时轮询服务器 显而易见的开始是使用XMLHttpRequest对象或 jQuery 的 aja