日期:2014-05-16  浏览次数:20420 次

在firefox下面动态请求服务器js产生的问题
代码如下,第一次请求a.js,正常,但是第二次开始就没反应了。我知道用document.getElementsByTagName('head')[0].removeChild($(s));方式删除之后重建,是可以连续获取的,但是这里有一个新的问题,就是每次新建的js控件和服务器的socket连接都是一个新的socket,不能保持长连接,这样从效率上来看是大大降低了。所以想请教一下,有没有办法,不用重建也能持续获取服务器js数据?

<script id='getd'></script>
<div id='iddiv'></div>
<textarea cols=160 rows=20 id='idtx'></textarea>
<script>
var E=/Mi/.test(navigator.appName),cn=0;;
function $(n){return E?document.all(n):document.getElementById(n);}
function sTm(d,t)
{
if(typeof d == 'function')
{
var v = Array.prototype.slice.call(arguments,2);
var f = (function(){d.apply(null,v);});
return setTimeout(f,t);
}
return setTimeout(d,t);
}

function ffc()
{
$("getd").src="./a.js";
sTm(ffc,3000);
$("iddiv").innerHTML=cn;cn++;
}
ffc();
</script>

------解决方案--------------------
firefox,chrome需要新建script标签,就算加时间戳也没用。