JavaScript是Widgets应用的瓶颈吗?
四、 JavaScript Widgets能加速吗?
遗憾的是,世上并没有通万病的解药。至今还没在给JavaScript Widgets加速的简单而快速的方法。但是一些组织或公司正在尝试使用一些复合的技术来对加快页面的加载速度。但旧问题还没解决,这种混合的技术又带来了新的问题,可谓一物生一物,雪上加霜。但JavaScript作为客户编程的一种主流及主要的技术,在必要从行业或是领域的角度来考虑解决这一问题的办法。下面是一些JavaScript设计们似乎应该考虑的若干建义及设想:
(1) JavaScript区分执行
经常碰到的一个问题是所有的JavaScript都想立即运行,独木桥人人想过。那么,我们是不是可以这么设计,在页面加载的时候,对那些不怎么改变页面的JavaScript代码,是不是可以等到页面最终加载完后最执行呢?这样,页面的可见内容就可以快速出来。但遗憾的是,所有的浏览器都没在这样实现。
(2) 最小化加载时的代码
众所周知,任何页面加载时运行的代码都会降低页面的展现速度。加载时运行的代码越小,页面就越快速出来。而另一个相关的问题是,在整个页面查找某些内容。这往往容易导致无回应脚本对话框的出现,任何JavaScript代码运行超过几秒钟(如5秒)就会发生这种错误。而使用timouts来将很长的JavaScript代码分开执行,也许是一条不二的选择,当然人人认为这样做也会很痛苦。
(3) 采用不同的URLs来平衡请求
在比较好的情况下,你使用的Widgets 来自一个稳定快速的服务器;比较糟糕的是你使用的Widgets 来自一个不稳定的服务器,那对你的网站的影响就会很大。一些Widgets一般都给出相同的URL,如 www.mycoolwidget.com。当许多的请求者对同一台Widgets服务器并发请求时,服务器的负载就成了问题。最好的办法是给出不同的URLs,例如,server1.mycoolwidget.com, server2.mycoolwidget.com等。虽然他们还是指向同一个域,但长远来看,这无疑是一个化解拥挤的好办法。
(4) 使用标准类库
在软件行业最痛苦的事情莫过于重复发明轮子。因为JavaScript很容易出错,而又不像Java那样提供丰富的类库,但是像prototype 以其高效性,正在成为标准类库。Prototype 1.6刚发布了。Prototype由于富在经验的JavaScript人员开发,因此此类库的价值非常高。
(5) 容器化
如果不知道Widgets谁将使用或会使用在哪,还在哪些其它的Widgets已经安装了,如果没有这些信息,使用JavaScript变得比较困难。但JavaScript爱好者不用悲观,因为还在很多事情可以做。
如果我们看一看Java 社区,这样类似的问题已经被解决了很多次了。真可谓是相见恨晚。大名鼎鼎的Applets、Servlets及企业级JavaBeans,其实这些东西和Widgets相比,最大的区别在于,前者被一个容器来管理,而Widgets没有。这就是问题的解决办法。
容器提供各种基础的服务及接口之间的通信。它负责处理加载、卸载、回调、单击、提示等内容,这些开发人员喜爱而非技术人员厌恶听到的东西。总的来说,JavaScript需要一个容器来将JavaScript的有序变成无序。
(6) WEDJE
提供一个Raw 式嵌入还是必要的,因为不是每个网站都允许使用 JavaScript 式嵌入,但是如果Widgets 是使用在人们自己网站或Blog上,JavaScript 式嵌入仍然是一个更理想方法。所以,为了兼容这两种方式,设想一种新的方案:WEDJE(Widget Enabled DOM JavaScript Embedding)。
Standard document.write:大多数的 JavaScript式嵌入是简单的使用 document.write 来把代码写入页面,问题是,如果Widgets 服务器停了,其余网站就不能运行Widgets 了,直到 JavaScript自己停止,很多人误以为可以对其使用延迟属性来防止这种事情的发生,但延迟属性完全阻止了 document.write ,所以它不是一个好的解决办法。
延迟 innerHTML 代码:另外一种JavaScript式嵌入的方法是加入帐号机制,增加一个延迟参数来加载JavaScript,在script 加载完后使用 innerHTML 来写入。这似乎很不错,但在实际中,不同的浏览器的效果都不同。
五、 小结
在过去的一年或者现在,互联网已经显示出,因Widgets的使用而呈现爆炸式状态。Widget如今已是大行其道,也有很多关于“2007年将是Widget年”的呼声。它首先对于网站(Widget提供方)的推广是很有益处的,甚至可以说是不二的营销手段。Widgets和JavaScript工具变得越来越酷及使用更方面时,想要变得更好时,却发现没有基本的基础性的东西来支撑。Blog变得越来越慢了,这得归咎于越来越多的Widgets和JavaScript的滥用。而要求Blogger们理解各种Widgets混合使用会导致的问题,这似乎超出了Blogger们的心理防线。
此外,我们需要在发布Widgets时,要求按一定标准和准则。最好的参照软件行业中已有的成功经验。Java社区有很多成功且很值得借鉴的经验。
0
相关文章