解决XMLHttpRequest的timeout在firefox<12版本无效

XMLHttpRequest的timeout在firefox<12 版本无效的,可以重写XMLHttpRequest的timeout对象

// snip

to = function() {
    attempt++;
    if( attempt < 5)
        send();
    else if( !silent) {
        console.log("Request Timeout\nFailed to access "+url);
    }
};

// snip

var send = function() {
    if( loader && attempt != 0) {
        loader.children[0].firstChild.nodeValue = "Error... retrying...";
        loader.children[1].firstChild.nodeValue = "Attempt "+(attempt+1)+" of 5";
    }
    a = new XMLHttpRequest();
    a.open("POST","/ajax/"+url,true);
    a.onreadystatechange = rsc;
    setTimeout(function () {     /* vs. a.timeout */
        if (a.readyState < 4) {
            a.abort();
        }
    }, 5000);
    a.onabort = to;              /* vs. a.ontimeout */
    a.setRequestHeader("Content-Type","application/json");
    a.send(data);
    console.log(‘HTTP Requesting: %s‘, url);
};

  

解决XMLHttpRequest的timeout在firefox<12版本无效

时间: 2024-10-12 17:14:17

解决XMLHttpRequest的timeout在firefox<12版本无效的相关文章

docker技术剖析--docker1.12版本+swarmkit

防伪码:为目标,晚卧夜半,梦别星辰,脚踏实地,凌云舍我其谁! 1.Docker Swarm  是什么? Docker Swarm 是一个用于创建 Docker 主机(运行 Docker 守护进程的服务器)集群的工具, 使用 Swarm 操作集群,会使用户感觉就像是在一台主机上进行操作 docker1.12 集成了 swarmkit, 使你可以不用安装额外的软件包, 使用简单的命令启动创建 docker swarm 集群. 如果你在运行 Docker 1.12 时,你就可以原生创建一个 Swarm

mouseover和mouseout多次触发解决方法(兼容ie和firefox)(转)

在用到mouseover和mouseout事件来作为事件触发的条件,但是如果我们用做触发的元素内部有其他的元素的时候当鼠标移上的时候会反复的触发mouseover和mouseout事件,如导致菜单闪烁等问题.因为内部元素在鼠标移上的时候会向它的父对象派发事件,所以外面元素相当于也触发了mouseover 事件. 为了阻止mouseover和mouseout的反复触发,这里要用到event对象的一个属性relatedTarget,这个属性就是用来判断 mouseover和mouseout事件目标节

Chrome桌面提醒功能,兼容新老版本,firefox最新版本也通过

Chrome新版升级api,与w3一致,为了兼容,代码如下: //桌面提醒 function notify(title, content) { if(!title && !content){ title = "桌面提醒"; content = "您看到此条信息桌面提醒设置成功"; } var iconUrl = "/images/send_ok.png"; if (window.webkitNotifications) { //c

JavaScript的history.back()在FireFox和Chrome无效解决办法

今天在做一个app测试时需要用到返回上一级来源页面的一个功能了,但测试了history.back()之后发现在ie有效在FireFox和Chrome无效,下面我们来看问题如何解决. 最初写法是history.back()如下 htm <div class="btn1"><a href="#" id="calcelbtn">取消</a></div> js代码 $('#calcelbtn').click

解决git提交敏感信息(回退git版本库到某一个commit)

解决git提交敏感信息(回退git版本库到某一个commit) Fri 07 June 2013 git是一个很好的版本库, 现在很多人用它, 并在github上创建项目, 相信大家都有过将敏感信息提交版本的经历, 如何删除? 好像只有删除版本库来解决, 其实我们可以通过回退版本库删除相应的commit来将提交的敏感信息去掉. 备份本地代码 首先我们将本地代码的更改备份一下, 以防丢失更改 回退本地代码的commit 备份完数据, 我们就可以先回退本地的版本库 git reset --hard

解决IE6、IE7、Firefox兼容最简单的CSS Hack

写三句代码来控制一个属性,区别Firefox,IE7,IE6: background:orange; *background:green !important; *background:blue; 说明:这段代码会使在Firefox中,背景呈橙色:IE7中为绿色:IE6中为蓝色. 道理如下,Firefox不能识别*,所以后面两句都不执行,直接执行第一句:IE7三个都能识别,但是由于有第二句important的作用,所以就执行了第二句代码:IE6不能识别!imprtant,按照最新原则,那就理所当

关于ORA-04021解决办法(timeout occurred while waiting to lock object)

某个应用正在锁定该表或者包 表为 select b.SID,b.SERIAL#,c.SQL_TEXT from v$locked_object a, v$session b, v$sqlarea c where a.SESSION_ID = b.SID and b.SQL_ADDRESS = c.ADDRESS and c.sql_text like '%table_name%' 包为 select B.SID,b.USERNAME,b.MACHINE FROM V$ACCESS A, V$SE

如何解决更新被拒绝,因为远程版本库包含您本地尚不存在的提交。这通常是因为另外 提示:一个版本库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更 提示:(如 &#39;git pull ...&#39;)。

不要通过网页提交,通过网页提交一次,然后在终端再次push的时候,会认为网上代码仓库已经被其他地方提交过一次代码,此时会拒绝终端push 这个时候只能是pull,然后才能再次在终端提交. 也就是说,避免这种问题的注意事项是:不要通过网页向仓库提交文件. 解决办法: 1.强行上传  git push -u origin +master 2. 尽量先同步github上的代码到本地,在上面更改之后再上传 如何解决更新被拒绝,因为远程版本库包含您本地尚不存在的提交.这通常是因为另外 提示:一个版本库已向

卫星地形图地图下载工具更新2.12版本功能更新Somap

Somap2.12版本增加了一下 坐标纠偏功能,可以批量转换坐标:国内在线地图因相关政策均存在纠偏问题,现有如下3中标准:WGS84:无偏移,国际坐标,GPS坐标(谷歌.必应等标注[无偏移]的地图或者GPS使用):支持WGS84.GCJ-02.BD-09互转.支持格式:Kml.Excel. 下载地址:SoMap2.12点击此处下载    https://pan.baidu.com/s/1_CC25YTlt4u-0AioWSYQqA 另外,增加了坐标系转换功能,可以支持Geotif等坐标转换 原文