javascript是widgets应用的瓶颈吗?

  在过去的一年或者现在,互联网已经显示出,因widgets的使用而呈现爆炸式趋势。widget如今已是大行其道,当然也少不了“2007年将是widget年”这样的呼声。

  随着网络的发展,blogger数量飞速增长,很多blogger都很关注自己blog的美化,在这种需求下面,出现了很多提供wdgets服务的网站,只要把相应的widgets代码插入blog相应位置,就可以得到漂亮的效果。

  在物理学上有种现象叫非线性振动。当不同的力量相互作用时,其结果并非线性的进行叠加,而是难以预测。而这在软件行业也不例外——当将许多的组件放堆在一块的时候,最后连自己都弄不明白到底想要做什么了。在blog上,加载了许多widgets的页面,每个组件都是独立的运作,以达到充分的吸引浏览者的目的。然而,结果往往是,这种看似丰富而其实是杂乱无章的东西,不但让浏览者很厌恶,同时,使blogger也是疲于维护与整理,最后大家都失望。

二、       bloggers——受害者
 
一个互联网widget最值得描述的,就是迷你式(傻瓜式)的应用程序,将功能添加到网页、blog等。如果喜欢某一个widget,只要简单的复制和粘贴代码到网页的html程序内,相片的列表、新闻、视频、广告、mp3播放器以及丰富的计数器等就会出在页面相关的位置!还可以对它进行命名。
widgets宣称可以使网站更加的漂亮化。而对于追求开放与个性化的blogger而言,这无疑是天大的福音。于是blogger们纷纷在自己的blog上加上了许多漂亮的wedgets,如flicker,twitter,sphere等等。如下所示:
请将下面的html代码复制到您的页面中:请注意,为了保证即使twitter.com没有加载的情况下不影响您的页面加载,请从第二行开始复制,即从<script type=”text/javascript”…>开始,复制到页面的底部,在</body>中上。



图1.在blog上加载widgets的代码示意图
如果对html及blogging平台有一定了解的话,在blog中加入widgets是件很容易的事情。只需要将html代码复制到相关网页的代码中去。有些时候,需要将代码插入到html文档的头部,但这并没有难度。此外,还可以利用一些辅助工具进行安装widgets,如可以采用widgetbox平台来进行辅助安装。
安装widgets是如此的简单,于是blogger们纷纷来者不拒,让widgets在自己的blog中遍地开花。然而否极泰来,乐极生悲,这常常导致页面加载的时候加长,会降低网站速度。在比较好的情况下,使用的widgets 来自一个稳定快速的服务器;比较糟糕的是你使用的 widgets 来自一个不稳定的服务器,那对网站的影响就会很大。不管是上面两种情况的那一种,完成网站的加载和渲染都取决于第三方服务器上的代码运行速度,即使是一个成熟稳定的widgets,它也需要时间来反应,这仍然会造成网站加载速度的减慢。
三、       javascript widgets
 
实现widgets的主流技术有flash和javascript。flah widgets有它自身的问题。例如感觉很笨重,大小不可改变及不能操作dom模型。当然,这并不是仅仅flash widgets的缺陷,javascript widgets也难以脱俗。
大多数使用widgets 的方式有两种:raw 式嵌入或 javascript 式嵌入。
raw 式嵌入通常是提供一个 object/embed 代码,来直接实现一个 flash widget,这种方法的优点是它可以在不允许使用 javascript 式嵌入的网站上运行;缺点是:许多人不喜欢把 object/embed 代码直接放在他们的页面上;另外有些widgets 不是基于flash 的;最后widgets 的作者不能对已嵌入的widgets 进行太大修改变化。
javascript 式嵌入使用了脚本,包括远程部署代码进入用户的网站,优点是:它更简洁也更灵活,它的缺点是:它或多或少的增加了网站加载时间,而且一旦出现问题,网站加载时间将成倍的增加。
javascript从一开始就被设计成一种轻量级的便于操作html文档但互操作性最小化的客户端语言。但从以往技术发展的曲线来看,javascript正在向一种web编程语言发展。从ajax到widgets,javascript被应用到许多它所适应范围边际上的项目中去。由于,问题就开始出现了。
程序员对javascript最大的诟病莫过于它的单线程模式。javascript里是没有线程的,当然你可以尝使用settimeout来试试(这个函数的功能是延时执行某一个函数)。但这并不是真正意见上的多线程。这意味着javascript中的代码只能是顺序的执行,没有并发性(当然除了ajax调用之外)。于是,当任何时候,一段javascript代码片段在加载或执行的时候,其它什么事情都干不了。这和下图所示的现象是不是一样呢?



2.javascript 中的“单线程”
这意味着,一行行额外加载的javascript代码往往导致整个页面加载速度的降低。而这正是在blog社区正在发生着的问题。那办法或是解决出路在哪呢?

发表评论 0条】
rel="stylesheet" href="http://news.csdn.net/css/tagegg_front.css" type="text/css" media="all" />
其他文章
    相关文章
    最近评论
    正在载入评论列表...
    rel="stylesheet" type="text/css" href=http://remark2.csdn.net/demo/csdnnews/rviewli.css />
    热点评论

      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值