`

HttpWatch中的ERROR_INTERNET_INVALID_URL错误 [此博文包含图片]

 
阅读更多

原文:ERROR_INTERNET_INVALID_URL & HttpWatch

一些用户反映,最近在他们的页面中通过 HttpWatch 抓包,有发现请求 http://:/ 这样的地址,想知道发生这种问题的原因。这样的 URL 会在 IE6 中显示 “ERROR 0x57”,而在 IE7 中显示为“ERROR_INTERNET_INVALID_URL”。

发生这样的错误都有一个共同的原因。他们一般都使用了 JQuery 或者 YUI 的 Javascript 库。很难立即发现是哪里生成了这个 URL,我们使用 IE Developer Toolbar 检查后发现,没有哪个 DOM 节点使用了这个 URL。

我们使用当前的 jQurey 库建立了一个简单的测试页 。如果你使用 HttpWatch 抓包,你就能看见页面加载后,对 http://:/ 地址的请求被记录了下来。

jQuery Demo in IE7

IE7 下抓图

jQuery Demo in IE6

IE6 下抓图

我们猜想会不会是 IE 自动加上了 http: 前缀和最后的反斜杠,于是,我们查找 //:。HttpWatch 高亮显示了 jquery.js 中的如下代码片段。它的作用是,在 IE 下做一个 Hack 来触发一个事件,效果等同于 Firefox 中 DOMContentLoaded 事件。

IE Defer Script Hack

jQuery 库不使用标准的 window.onload 事件,是因为该事件会等到页面和页面内的全部图片完全加载成功后才会被触发。如果图片较多,或者图片较大,会造成页面上的 JS 函数执行被严重地滞后。使用 DOMContentLoaded 事件的优点就在于,一旦页面的 Dom 节点完成后,JS 就可以安全的操作这些节点,而不会触发 IE 终止错误。

因此,在 IE 下创建了一个带有 defer 属性临时的 SCRIPT 标签,来产生一个与 DOMContentLoaded 事件相同作用的事件。(注:该 SCRIPT 标签的 onreadystatechanged 中可以监测 SCRIPT 的加载状态,如果 readyState 属性为 complete,就证明 DOM 节点已经完成并且可以操作。关于这种方法的可靠性,我们在另一篇文章中单独探讨)然而,如果 SCRIPT 标签有一个 defer 属性, SCRIPT 必须有一个 src 属性的时候才会触发 onreadystatechanged 事件。就是这里的 src 属性引起了这个错误的 URL 请求。

临时的 SCRIPT 标签会在事件触发后被删除,因此无法在页面的 DOM 节点中看到。

The temporary

相同的例子是使用 YUI 库:

YUI Defer Script Hack

如果你访问 YUI Event 示例,你仍然可以看到这个错误:

YUI Event Example

SCRIPT 标签的 src 设置为 //: 是整个问题的根源。如果它是一个真实有效的 URL,必然导致一个冗余的网络请求。这个无效的URL 请求会在 HttpWatch 中显示为一个错误,但是会带来最小程度的性能开销。YUI Event 实例中我们可以看到,它仅仅增加了 3 毫秒的下载时间。

分享到:
评论

相关推荐

    HttpWatch_Professional_7.0.23汉化破解版 教研必备

    HttpWatch_Professional_7.0.23汉化破解版 教研必备

    HttpWatch_Professional_7.0.23汉化破解版(附Lic)

    HttpWatch_Professional_7.0.23汉化破解版(附Lic).7z.rar

    httpwatch_httpwatch_抓包_

    8. **集成开发环境**:HTTPWatch可以无缝集成到Internet Explorer、Firefox和Chrome等主流浏览器中,为开发者提供便捷的调试环境。 在实际应用中,HTTPWatch常用于以下几个方面: 1. **网页性能优化**:通过分析...

    httpwatch_12290_BDdl

    httpwatch_12290_BDdl

    HttpWatch_Basic_8.5.35

    HttpWatch_Basic_8.5.35 该插件可以给web开发提供很好的调试作用

    HttpWatch_Professional_7.0.23汉化破解版

    HttpWatch_Professional_7.0.23汉化破解版,分析HTTP请求必备工具

    HttpWatch.Professional_v6.0.14 + license

    5. **集成到浏览器**:HttpWatch可以无缝集成到各种浏览器中,如Internet Explorer和Firefox,使得性能分析更为便捷。 6. **性能对比**:可以比较不同优化策略下的网页加载速度,以便找出最佳的优化方案。 7. **...

    HttpWatch_Professional_7.0.23汉化破解版(网页数据分析工具)

    HttpWatch_Professional_7.0.23汉化破解版(网页数据分析工具)

    HttpWatch_Professional_7.0.23 汉化破解版

    HttpWatch.Professional.v...开发网站必备的工具HttpWatch的7.0.23版本的,此版本为原版+授权文件,本压缩包包含: httpwatchpro.exe(版本为7.0.23) httpwatch.lic 汉化包 安装的时候选择lic文件所在位置 亲测

    HttpWatch_Professional_7.0.23汉化破解版(附Lic)

    HttpWatch 是一款强大的网页数据分析工具,可以集成在Internet Explorer工具栏. 包括: 网页摘要;Cookies管理;缓存管理;消息头发送/接受;字符查询;POST 数据和目录管理功能;报告输出 HttpWatch 是一款...

    HttpWatch_Professional_7.0.23原版+汉化破解版补丁

    HttpWatch Professional 汉化破解版 7.0.23版本

    httpwatch_pro_6.1.46

    HttpWatch是强大的网页数据分析工具,可以在IE和Firefox下使用,当使用JavaScript和Ajax开发异步通信程序时,该工具就显得非常重要,它提供了详细的Cookies管理、缓存管理、消息头请求/响应、字符查询、POST数据和...

    HttpWatch_Professional_Edition_8.5.19

    强大的网页数据分析工具。集成在Internet Explorer工具栏。包括网页摘要。Cookies管理。缓存管理。消息头发送/接受。字符查询。POST 数据和目录管理功能。报告输出。

    IE 上抓包工具 httpwatch+professional_downza.cn.zip

    《IE浏览器上的网络抓包工具:HTTPWatch Professional详解》 在互联网开发和网络性能优化过程中,网络抓包工具是不可或缺的利器。它们可以帮助我们深入了解网络请求的细节,从而找出问题所在,提高网页加载速度和...

    HttpWatch.Professional_v6.0.14-DOA.rar

    HttpWatch集成在Internet Explorer浏览器中,允许用户实时查看页面加载过程中的每一个步骤,包括DNS解析、TCP连接、HTTP请求和响应等。它能够记录所有HTTP和HTTPS交易,显示详细的请求和响应头部,内容长度,以及...

    HttpWatch_10.0.62.0_licen

    在标题"HttpWatch_10.0.62.0_licen"中,我们可以推断出这是HttpWatch的一个特定版本,即10.0.62.0,通常软件更新迭代会修复问题并提升性能。描述提到"下载并且提供序列号,希望能帮到各位",这意味着除了软件本身,...

    HttpWatch.Pro_v6.0.14

    HttpWatch是一款强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出

    HttpWatch.Professional_v6.0.14-DOA

    HttpWatch是强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出.HttpWatch 是一款能够收集并显示页页深层信息的...

    httpwatch_10.0.43.0_setup.1455878048

    httpwatch

Global site tag (gtag.js) - Google Analytics