作者:俊惠芸菁亚扬 | 来源:互联网 | 2023-05-19 16:03
我的页面执行以下操作:浏览器将加载一个非常简单的页面,其中包含有效的头部和正文,并且仅包含一个脚本脚本对.在主体中,它具有运行onLoad函数的脚本(脚本a).该函数动态包含第
我的页面执行以下操作:
>浏览器将加载一个非常简单的页面,其中包含有效的头部和正文,并且仅包含一个脚本/脚本对.
>在主体中,它具有运行onLoad函数的脚本(脚本a).该函数动态包含第二个脚本(脚本b),并在可用时在其中运行一个函数.
>第二个脚本是执行各种工作的.js文件.
这两个脚本均由PHP解析,并使用application / x-Javascript内容类型.
现在,除了几个JS打ic之外,我所有这些工作都很好. Javascript并不是我的强大语言之一,因此我希望这些都是简单的问题,有人可以为我指出正确的方向.
问题1:如果我执行简单的警报(“您在脚本b中”);在第二个脚本中,它按预期工作.但是,如果我做其他任何事情,它都可以正常工作,然后浏览器会一直指示它永远加载.这是Firefox中的补间色,或IE中的旋转色.
我尝试以不同的方式结束脚本,但似乎无济于事.知道如何向浏览器指示脚本已全部加载吗?这是一个.js文件,必须通过PHP进行解析.
问题2:Opera或Google Chrome中似乎根本没有包含第二个脚本.除了加载问题外,在FF / IE中工作正常.谁能看到Im在第二个脚本的加载中是否使用了不兼容的东西?
谢谢!
更新:
感谢您的回答.我实际上有萤火虫,这就是为什么我知道一切都正常运行的原因(至少在FF中如此).我实际上不知道该脚本无法在Opera / Chrome中运行,但是什么也没发生.
这是相当多的代码= o)我将从Firebug中复制实际的响应并将其发布,这样您就可以准确地看到代码是什么.至于关闭服务器的网络服务器,我也在想,但是如果我将脚本b设置为alert(‘whatever’),这似乎很奇怪.它会发出警报,然后停止加载,但是我所做的一切都完全相同,但是使脚本为document.write(‘whatever);.它将永远加载.
以下是直接从Firebug的“网络”标签复制,更新的脚本:
请注意,discoverfire.net是一个内部域,因此您将无法从那里加载任何内容…
初始HTML页面:
**脚本A(… a.js):http://www.discoverfire.net/analytics/l/a.js **
function TAFKing_Lander(){
version = TAFKing_version;
lkey = TAFKing_lkey;
var scrb = document.createElement('script');
scrb.type = 'text/Javascript';
scrb.src = 'http://www.discoverfire.net/analytics/l/b.js?lkey='+lkey+'&version='+version+'&cb=4eohe8e65'
;
document.getElementsByTagName('head')[0].appendChild(scrb);
Interval = setInterval("Waiter()", 10);
return;
}
function Waiter(){
if(window.TAFKing_LanderB) {
clearInterval(Interval);
TAFKing_LanderB();
}
}
脚本B(… b.js):http://www.discoverfire.net/analytics/l/b.js?lkey=19-8O-KKA8HV&version=1.0&cb=4eohe8e65
function TAFKing_LanderB(){
document.write("there are just a whole bunch of doc.writes here that build a simple table");
}
解决方法:
我敢打赌,这与脚本无关,但与Web服务器无关.您的描述,特别是它影响许多浏览器,其中一些甚至不运行脚本,使我相信Web服务器没有关闭连接.可能是网络服务器未正确处理HTTP / 1.1保持活动请求.
尝试在Firefox中使用Firebug.安装它,为您的页面启用它,重新加载页面并检查“ Net”选项卡上真正使连接保持打开状态的内容.