几个AJAX面试题 - 高飞网
6人看过

几个AJAX面试题

2012-03-13 01:22:57

Q1:采用Ajax技术,除了酷炫效果之外,还有什么好处?
答:所谓的「酷炫」应该是指可以随意拖放网页上的Widget、色彩渐层、元件的淡出/淡入、图案变大/变小等效果,或者惊艳于Web Mail竟然可以提供类似Outlook的介面。
其实最直接而明显的好处,是减少网页重新载入的次数。
根据统计,购物网站每刷新一次网页,就会有10%的消费者在等待的过程中「清醒」,发觉未必有购买的需要,而取消交易。当网页不再因为少部分的资料被修改,就必须重新载入整个网页,即可减少使用者等待的时间,提供更流畅的操控体验。
无论是酷炫效果、精致的画面,或者顺畅的流程,对于网站的形象、商品销售及使用者体验都具加分的效果。
Q2:操控流畅对网站是有加分效果,但从企业的角度,关心的层面还包括Intranet的应用,Web应用程式适合加入Ajax技术吗?
答:在我们了解推推王、UrMap、Yahoo!及网擎Mail2000等的Ajax应用之后,发现Web应用程式还真的非常适合采用Ajax技术。
注意力持续,有效提升生产力
应用程式的操作往往包含复杂的流程,然而Web化之后,流程变成了一连串网页提交(Submit)的动作,每一次的更新网页都需要数秒的等待,而且不能按「上一页」退回前一个步骤。
在Web化的时代,企业最担心的问题,并不是浪费了那几秒等待载入网页的时间,而是人在等待的空闲,很自然地会开启另一个网页,注意力就被导引到其他更有趣的资讯上,再次回神时,可能是半小时以后。
所以,对购物网站而言,注意力的持续是订单的保证;对企业而言,则是生产力的提升。
延续桌面应用程式的操控体验
不能按「上一页」的操作模式,强烈地显现出「应用程式」与「浏览器」操作习性上的不同。当应用程式执行的环境搬到Web之后,使用者仍然期待保有桌面应用的操作体验,透过Ajax的非同步技术,即有机会消弭应用程式与浏览器之间的鸿沟。
以Yahoo!邮件信箱与Mail 2000为例,在Ajax化之后,使用者体验的是与Outlook极其类似的操作方式。网擎资讯从用户的回馈发现,由于操控方式的改变,使直觉与便利性向前跃进一大步,因此使用者满意度明显提升。
Q3:会不会拖慢Web伺服器效能?
答:可能是因为Ajax的酷炫效果,以及首次载入Ajax网页的时间比一般HTML网页长的原因,所以容易让人误以为采用Ajax会拖慢伺服器效能。事实上,刚好相反!
Ajax技术与传统网页与Web伺服器沟通方式各有不同。传统的作法是用户端送一个请求(Request)至Web伺服器,即使只需更动一个栏位的值,Web伺服器仍需重组一个完整的网页,回应(Response)给用户端,也因此浏览器必须重新载入一次。
相较之下Ajax技术使网页具备程式能力,当使用者修改资料,触发了JavaScript程式,浏览器便将使用者输入的资料传送至Web伺服器,Web伺服器会再把需要回传的资料送至浏览器,当JavaScript接收到资料之后,再把结果呈现在网页上。
过程中完全没有触发提交动作,Web伺服器只回传需要修改的内容,而且浏览器也没有重新载入的动作。这对伺服器负载、频宽使用量及用户端的操作体验是三赢的局面。
根据UrMap改用Ajax技术传递地图资讯的经验,在使用人数成长了10倍以上的情况下,伺服器的负担相较于以往仍是减少,而频宽使用量也没有增加太多。
再以网擎资讯Mail 2000 4.5 Beta版改采Ajax技术为例,观察的结果发现,伺服器需要运算的资料量减少,频宽成本也下降。以一页的信件列表为例,过去100封邮件约需要传送120KB的资料量,现在则降为30KB。点选「新信检查」功能,递送的资料量约略是过去的1/5~1/4。
Q4:AutoComplete这类的Ajax机制,频繁地向伺服器要资料,应该会拖慢效能,是否有方法可解?
答:AutoComplete或内容自动更新等Ajax机制,是使用者非常喜欢的功能。但人数众多时,确实可能拖慢伺服器效能。
不过,此类问题可从设计上解决,例如设定快取机制、延长反应的时间、每填入3个英文字母才查询一次,或者限制使用资料等,都是可能的解法。
带领开发UrMap的友迈科技董事长卓政宏形容:「这是一种程式管理资源的方法。」他举例:UrMap下载的地图资讯,其实略多于网页显示的范围,使用者微幅地拖拉或缩放地图时,其实叫用的是本机资料,并没有对伺服器发出请求。所以,只要根据使用者的行为模式调整设计,就可以降低伺服器的负担。
Q5:那么Ajax对用户端的执行效能有何影响?
答:相对于传统网页,Ajax技术使得用户端与伺服器传递的资料量变少,又避免了网页重新载入的机会,Ajax操作阶段的效能的确是较佳的。
不过,首次登入网站时,下载的资料除了页面呈现的内容外,还包含强化互动性的JavaScript程式时,你可能会发现载入时间变长。针对用户端的执行效能,Yahoo!国际资讯软体工程师蒋定宇认为:「尽量缩短JavaScript程式码,就可以将影响降到最低。」

还没有评论!
54.198.28.114