最近发现jQuery越来越火,用它的人也越来越多。jQuery最强大的亮点莫过于它的CSS3 selector和极其简单的Ajax请求调用。

最近一哥们在做一个Ajax长连接的项目,页面需要和服务器保持长连接,而且在连接超时后需要重新请求连接,过程中他问我要用到什么,我也是想都没想就告诉他用jQuery。jQuery不是有ajaxSuccess  ajaxError这些对象吗,在请求完成或者请求失败后重新请求不就好了。

但是后来他告诉我说没有用 jQuery,自己手工写的XMLhttprequest 。他告诉我说,开始是用jquery写的,而且在测试过程中也没有出现问题。但是在后来无意中发现,在页面开的时候久了之后,浏览器资源竟然占用非常高导致内存不足而崩溃了。后来抓包分析发现,每次jquery的Ajax请求都会创建一个xmlHttprequest对象,理论上讲,长连接的请求是一个无限递归,请求数量是非常大的,但是由于每次请求都会建立一个新的xmlhttprequest,而且jquery不会自动回收资源,所以导致了内存溢出。

通过查看jquery API,发现jquery还有一个 complete对象,是请求完成后回调函数 (请求成功或失败之后均调用)。 同时有两个参数XMLHttpRequest, textStatus。所以,我们只需要在请求完成后,将传回的XMLHttprequest对象手工回收即可,代码如下:

$.ajax({
    url: "http://www.aizr.net",
    data: { name: "xxxx" },
    dataType: "xml",
    success: function (data, textStatus) { 
       //do something...
    },
    complete: function (XHR, TS) { XHR = null }
});

转载于:https://www.cnblogs.com/kuibono/archive/2012/05/25/jquery_Recover_xmlhttprequest.html

使用jQuery Ajax功能的时候需要注意的一个问题相关推荐

  1. mvc jquery ajax方法,Mvc Jquery Ajax功能不起作用[关闭]

    ajax无法正常工作,我可以工作吗?我想用mvc ajax显示通知..但是我使用ActionResult复出返回RedirectToAction("myAction"," ...

  2. ajax+php+jq+面向对象,php+jquery+ajax+json的一个最简单实例

    html页面: $(function(){ $("#send").click(function(){ var cont = $("input").seriali ...

  3. jquery.ajax

    这所有的最终都是通过jQuery.ajax()来完成的. ajax : function(s) { //两次继承s,以便在测试中能检测 s = jQuery.extend(true, s, jQuer ...

  4. 用 jQuery 的 AJAX 功能发现的一个错误/注意点:HTTP Error 411

    今天程序中有个地方需要 Ajax 方式 POST 数据,发现在 IE 6.0 下正常,而 FireFox 2.0.0.9 下则出错. 通过 FireBug 抓取 ajax 回发后得到的页面信息如下: ...

  5. 用jquery的ajax功能获取网站alexa的方法

    用jquery的ajax功能获取网站alexa的方法: 获取网站alexa的方法其实就是利用了jquery的ajax功能,获取远程的xml文件,读取指定内容的代码,从而获取网站的alexa排名. 代码 ...

  6. JQuery实现Ajax功能

    使用jquery实现ajax功能的示例代码如下: $.ajax({url:"/WebCrowd/servlet/AjaxServlet", //请求的地址data:{method: ...

  7. php表格tr,jQuery+ajax实现动态添加表格tr td功能示例

    本文实例讲述了jQuery+ajax实现动态添加表格tr td功能.分享给大家供大家参考,具体如下: 功能:ajax获取后台返回数据给table动态添加tr/td html部分: ajax部分: va ...

  8. php ajax mysql 分页查询_PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)

    1.首先做主页面Ajax_pag.php 代码如下: Ajax做分页 .header{ margin-top: 20px; } 关键字: 地区代号地区名称父级代号 2.然后做分页查询JS页面Ajax_ ...

  9. 如何使用Bootstrap Modal和jQuery AJAX创建登录功能

    by Yogi 由瑜伽士 Bootstrap Modal is an excellent way to create a Login form on your website. In this tut ...

最新文章

  1. Javascript绝句欣赏
  2. Function One
  3. c++命令模式command
  4. linux io负载解决方法,看你的linux负载 io值
  5. 常用adb shell 命令
  6. python报错RuntimeError: This event loop is already running
  7. mysql教程查询语句_最全的mysql查询语句整理
  8. 【目标跟踪】基于贝叶斯网络实现目标滤波跟踪附matlab代码
  9. C#中SqlParameter的作用与用法
  10. Java 在命令行编译Java源码
  11. TianMao订单数据分析
  12. Pina Colada Song现实版
  13. Windows系统访问网络共享文件夹提示没有权限访问网络资源,登录失败:未授予用户XXX等--终极必杀技
  14. java 合并mp3
  15. 聊一聊微服务之间的通讯方式
  16. c语言字符串输出大写字母个数,欧洲区预选赛视频直播 -官方网站
  17. 我的三维mandelbulb制作fractal成长之路[续]
  18. linux ffmpeg Unknown encoder 'h264'
  19. 解决每次运行Xcode都需要输入密码问题
  20. 【整理】MFC单文档程序窗口大小的设置

热门文章

  1. linux命令大写输入,在Linux命令行内的大小写转换
  2. ospf 环回口的路由条目_OSPF的LSA类型
  3. linux 中卸载提示设备正忙怎么办?
  4. 思科、华为、华三、Juniper路由协议优先级汇总
  5. 【干货】这10个Liunx命令能提高50%的工作效率
  6. Serverless Kubernetes 落地实践
  7. 业界率先支持 MCP-OVER-XDS 协议,Nacos 2.0.1 + 1.4.2 Release 正式发布
  8. Dubbo-go 源码笔记(二)客户端调用过程
  9. Dragonfly 成为 CNCF 孵化项目,我们与基金会首位华人 TOC 聊了聊
  10. mybatis 无法初始化类_从零开始手写 mybatis(一)MVP 版本