突然想起这个主题没有通过W3C的验证,于是今晚再次准备在解决一些问题,力争通过W3C验证。
可是在cnzz统计中的JS代码中由于有一个“&”,在验证时得到一警告,我的统计代码如下(注:为防止浏览器解释&,全部去掉了“;”):
1 | |
给的提示时:
1 2 | |
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 “&”, EVEN WHEN USED AS A SEPARATOR FOR PARAMETERS IN THE URL. ALSO KEEP IN MIND THAT NAMED ENTITY REFERENCES ARE CASE-SENSITIVE; Æ 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.
之后我在统计代码中将“&”改为“&”,问题又出现了,发现JS的加载时间过长,尤其是加载到94%的时候要卡好几秒。所以就在本地的XAMPP上测试&是否对浏览器解释有影响。
测试的浏览器为Firefox4.0,主题中去除了所有的JS,仅保留了cnzz的统计代码,如图:
当统计中代码中的网址为&时,刷新浏览器3次,载入时间分别是:2.297,2.105,1.878。此时的错误为:54errors1warning如图:
当统计中代码中的网址为&时,刷新浏览器3次,载入时间分别是:2.325,2.278,2.338。此时的错误为:52errors0warning如图:
所以我认为Firefox对于网址中的&的解释时间长于&,所以在网址中用&还是比较好。大家不妨测试下IE9和Opera,Safari等浏览器如何。
也许你认为这几秒的时间只要有带宽保证就行,但我写此文的目的确定&比&的解释时间长。