页面的原始源中经常都会存在很多重复的东西,这些重复的东西是有规律可循的,可以通过简短的程序来处理,避免从服务器加载这些大量重复的内容。而且这些简短的处理对程序的维护成本影响并不大,在存在大量重复内容的页面上可以试着使用。
比如有这样的超链接列表
运行<nav>
<a href="JavaScript:">a</a>
<a href="JavaScript:">b</a>
<a href="JavaScript:">c</a>
<a href="JavaScript:">d</a>
</nav>
这些超链接都是由程序处理的,但需要加href属性以确保超链接的行为正常。但是这么写显然是冗余的,公共部分可以使用程序来添加。
运行<nav>
<a>a</a>
<a>b</a>
<a>c</a>
<a>d</a>
······
</nav>
<script>
(function(){
var nav=document.getElementsByTagName("nav")[0];
var i=0,s=nav.children,o;
while(o=s[i++])o.setAttribute("href","JavaScript:");
})();
</script>
虽然程序也是挺大一段,但如果需要处理的标签量大的话还是很划算的。或者如果使用了jQuery的话程序只需要一句
$("nav a").attr("href","JavaScript:");
除了A标签的href属性,还有很多标签的属性也可以这么做。比如同样是A标签的 target="_blank" 如果一堆超链接都需要新选项卡打开,我们就可以从程序上解决,而不是为每个A标签添加同样的属性。还一些很常用的标签属性如,*:title、IMG:alt,等。它们都可以通过程序从其它地方复制过去。以文章列表为例,文章标题文字可能被 text-overflow:ellipsis 省略,所以需要title来让鼠标悬停时看到完整的文章标题。而直接从服务器输出文章标题就需要传输多余的数据,所以我们可以通过程序来复制这些属性。
也许有人会问,GZIP不是可以把这些重复数据压缩掉吗?GZIP确实可以压缩,但LZ77算法的实现是在每一个重复位置都放置标识符,对于单个重复的内容不多,但是数量很大的东西GZIP的压缩率并不高。而且HTTP上的数据未必是一次性传输给客户端的,GZIP的窗口压缩模式未必能一次性就处理完所有数据。所以在原始源中避免一些力所能及的数据是有效的。
也许有人会考虑另一个极端,数据归数据,模板归模板,模板复用数据,数据复用模板。这个思想很好,而且是可以实现的,这么一来就不存在数据传输冗余的问题了,目前的很多模板框架都是基于这样的思想。但这个思想的实施需要考虑的就是前端模板框架SEO的问题了。
随着现在互联网的发展,大网站越来越大,小网站越来越少,也许以后SEO真会变得不再重要。所以前端模板式编程很可能是未来的主流,而目前如果无法使用前端模板框架的话,以上的这些优化方式也是可以带来一定效果的。
本文来源于广州网站建设公司与广州网站设计制作公司-广帆互动广州公司!
日期:2015年05月20日
标签: 广州网站设计公司 、 广州网站设计 、 广州网站建设公司 、 广州网站建设 、 广州网站制作公司 、 广州网站制作 、 高端网站设计 、 高端网站建设 、 广州高端网站设计 、 广州高端网站建设