Ajax技术已经在很多大型企业网站建设得到了应用,这与这些大型企业的经济实力不无关系。目前,广大的中小企业,尤其是我们中国国内的中小企业是否具备了推广Ajax技术的非常好的时机呢?假如推广Ajax技术将会面临哪些困难呢?又将如何解决这些困难呢?基于上述疑问笔者进行以下四个方面的分析。
第一,中小企业开展Ajax应用已经具备了条件,但是必须注意该技术应用的特殊性。这就是需要开发人员注重网络开发的质量和JavaScript工具和框架及构件的安全性,通过严格的测试程序确保系统的完整性和同一性。
第二,目前推广Ajax应用的主要困难在于提高网络管理人员的素质。
(1)首先,仅仅了解XML是不够的。目前的网管人员大多具备了对XML的了解,但是仅仅靠XML是远远不能完全认识Ajax的。尽管Ajax中的"x"作为"XML"缩写,但是要真正认识Ajax,还要深入理解对象XMLHttpRequest,它可以传输任意格式的文本数据。对于许多Ajax开发人员来说,对于文档的直接输入,更倾向于阅读原始的文本格式或者HTML格式,还有很多其他很少人员使用和知道的YAML格式标记语言或者其他非流行格式。JavaScript是一个客户端环境,JavaScript的Object Notation甚或JavaScript的原始代码片段,会被赋予更多的数据格式含义。使用二进制格式作为上传格式还没有被XMLHttpRequest对象支持,但是考虑到Flash目前使用了一种二进制格式的文件.AMF(Action Message Format),这意味着Ajax应用中将会采用类似的数据格式。作为网络管理人员,应该知道网络传输中使用了什么格式的文件,因为这些文件不会都是XML格式的,而且,最好你能够学会分析这种数据格式,以便确保网络使用的性能和安全。然而,目前绝大多数网络管理人员还远远不具备上述基本素质。
(2)还要了解Ajax对网络资源利用方面引起的变化。应用Ajax的时候,网络管理最明显的问题出于程序架构模式引起网络资源利用发生了变化,比如几百KB响应非常少,小信息量的HTTP占了多数。这就意味着边缘性的Web和应用服务比原来更加繁忙。Ajax究竟给服务器和网络资源利用带来哪些变化,将取决于应用是如何构建的,必须确保开发人员理解应用给网络带来的影响。
第三,在推广Ajax技术方面,还有一个较大的困难来自于开发团队。
(1)开发团队应该尽早研究中小企业实施Ajax技术的技术特点。比如,数据包的大小权重和频度权重,以及哪个因素更重要。Web应用中应该坚持网络交付的数据量尽量小、频率尽量低的原则。然而,原则的制定并不意味着原则得到了多数开发人员的遵循。值得庆幸的是,Ajax响应的HTTP压缩有效减少了响应包的大小,而且这种方法在各种浏览器都得到了应用。由于动态压缩开销较大,尤其是小的数据包传输时压缩的效果不明显。这就意味着,使用Ajax应用的时候网管人员打开自己服务器上的压缩功能是非常重要。在JavaScript中加入客户端Ajax缓存是目前一种可行的基于缓存的解决策略,因为Ajax技术的应用将会从缓存得到比压缩技术更大的便利。
(2)了解Ajax通过排队算法对无序应答的优化处理。与传统Web开发技术相比,TCP/IP通讯的网络效应,比如对于收到的个人HTTP应答的无序性,通常没有得到开发人员和用户的重视。HTML文档作为基本的通讯单元,通常比其它对象收到得早些,继而触发需求。随后而至的其他需求触发整个文档的需求,这样就保障了整个过程有条不紊。Ajax放弃了这种潜在的规则,而在应用中依赖于一个排列好的响应队列。Ajax的框架目前还没有一个统一的模式,来规范采取的排队算法。Ajax的应用开发者应该对这种现状有所了解,以便有针对性地开发和应用适合具体应用特点的排队规则。
(3)了解Ajax技术对服务器故障的处理策略。Ajax应用受到两个HTTP连接同时链接到一个相同URL的限制。这是HTTP协议所规定的,并不是通常所见的浏览器BUG或者局限。这种限制的好处是避免了很多Ajax的开发人员遭遇服务器的意外故障,尽管微软公司的IE8已经远远超出了同时出现两个链接的限制。使Ajax快速投入到应用领域会出现一些麻烦,一些浏览器的规则要随之发生些变化,网络管理员要密切关注需求的数量,并与应用开发人员一道完成系统的设计与实施,但是要尽量避免一些网上快速投票等需要长期连接的应用项目。
(4)掌握Ajax技术快速响应用户需求的内涵。开发人员目前最为困惑的问题就是很多被访问数据库无法及时响应,仅仅告知因为超时信息传送失败,必须重新尝试登陆才能解决,服务器或数据传输过程出现了问题等等。多年来,用户一直通过网页的重载或回到上一步再次点击等方法来确保Web交付的质量。简而言之,用户这样做可以有助于减少网络故障带来的麻烦,因为错误往往出现在人们期望一个网页出现在面前的一瞬间。使用Ajax技术之后,这些应用经常出现的具体问题将会大量减少。但也存在一些问题,如用户通常并不知道错误产生的根源,仅仅从屏幕上要求等待的画面本身并不能了解更多的技术细节,而对自己发出的需求的当前状态和能否得到应有的响应就更是知之甚少了。JavaScript的诊断显示,上述问题的出现极少是因为客户端自身的原因造成的,事情发生的根源更是无法及时和准确地了解。开发团队说服管理层的人员多加关注Ajax的应用可能带来的新体验,则可以有效解决帮助用户方加深对问题根源的理解。