入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

浏览器对网址中的&与&amp解释时间各不同

创建时间:2016-05-03 投稿人: 浏览次数:1378
OneDou -   2011 年 05 月 03 日 0 198

突然想起这个主题没有通过W3C的验证,于是今晚再次准备在解决一些问题,力争通过W3C验证。

可是在cnzz统计中的JS代码中由于有一个“&”,在验证时得到一警告,我的统计代码如下(注:为防止浏览器解释&amp,全部去掉了“;”):

1
<script src="http://s16.cnzz.com/stat.php?id=2380487&web_id=2380487" language="JavaScript"></script>

给的提示时:

1
2
错误的写法:<a href="http://www.domain.com/cgi?x=123&y=456">
正确的写法:<a href="http://www.domain.com/cgi?x=123&amp;y=456">

ALL SPECIAL CHARACTERS IN THE HREF ATTRIBUTE SHOULD BE ENCODED. “&” IS A RESERVED CHARACTER BEGINNING AN ENTITY. (EX:  ). AMPERSANDS IN HREF FIELD SHOULD BE ENCODED AS THE EQUIVALENT ENTITY “&AMP”, EVEN WHEN USED AS A SEPARATOR FOR PARAMETERS IN THE URL. ALSO KEEP IN MIND THAT NAMED ENTITY REFERENCES ARE CASE-SENSITIVE; &AELIG; AND Æ ARE DIFFERENT CHARACTERS.

IF THIS ERROR APPEARS IN SOME MARKUP GENERATED BY PHP’S SESSION HANDLING CODE, THIS ARTICLE HAS EXPLANATIONS AND SOLUTIONS TO YOUR PROBLEM.

之后我在统计代码中将“&”改为“&amp”,问题又出现了,发现JS的加载时间过长,尤其是加载到94%的时候要卡好几秒。所以就在本地的XAMPP上测试&amp是否对浏览器解释有影响。

测试的浏览器为Firefox4.0,主题中去除了所有的JS,仅保留了cnzz的统计代码,如图:

当统计中代码中的网址为&时,刷新浏览器3次,载入时间分别是:2.297,2.105,1.878。此时的错误为:54errors1warning如图:

当统计中代码中的网址为&amp时,刷新浏览器3次,载入时间分别是:2.325,2.278,2.338。此时的错误为:52errors0warning如图:

所以我认为Firefox对于网址中的&amp的解释时间长于&,所以在网址中用&还是比较好。大家不妨测试下IE9和Opera,Safari等浏览器如何。

也许你认为这几秒的时间只要有带宽保证就行,但我写此文的目的确定&amp比&的解释时间长。


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。