Web开发的"经典"方法有一段时间以来一直是瘦客户端和厚服务器:服务器生成HTML并将其吐出以供浏览器仅呈现.但是对于当前的浏览器(以及由于良好的库和框架的可用性),Javascript现在可以工作了.Web开发人员现在几乎可以假设他们的Javascript代码可以工作并且不再烦恼.
这无疑为网络开发开辟了新的可能性.应用程序现在可以主要由从服务器返回并由浏览器呈现的HTML内容组成,其中一些UI操作在客户端完成.客户端甚至可以向服务器查询用于更新UI部分的新数据.但是我们可以继续下去吗?一个应用程序当然可以设计为一个服务器,只将最简约的JSON粘合到一个厚厚的Javascript客户端,负责构建和控制整个用户界面.是的,这种方法可以严重破坏URL到人们不能再发送指针的程度,但是当然可以设计你的方式(对于某些应用程序,如电子邮件和提要阅读器,这甚至都没有物).
你怎么看?你有没有试过这种方法?事情变得太慢了吗?现代浏览器是否能够处理大量的Javascript代码?浏览器实现之间是否存在任何显着差异,即使使用最新的库,仍会咬住未经修改的开发人员?您认为这种方法适用于哪种应用?它真的适合任何东西吗?
Joe*_*hts 12
我正在构建这种应用程序的尾声.它是一个基于Zend Framework JSON-RPC Web服务的ExtJS GUI,实现了类似iGoogle的小工具门户.
好处:
缺点:
我们这样做的驱动原因是提供更好的用户体验.用户希望获得类似桌面的体验,并且无法通过服务器往返提供这种体验.我们现在可以实现这一目标,但无可否认,这样的方法存在巨大挑战.总的来说,我很满意.
更新(2013年9月):
如果您正在构建一个真正的Web应用程序(不仅仅是具有一些动态功能的网页),仍然使用这种架构并仍然认为它是正确的架构.我们的团队和产品现在要大得多(接近500,000行代码),但架构已经扩展而没有问题.现在有许多非常好的可扩展的javascript框架(angular,ember,...),因此采用这种工作方式比以往更容易.
因为@rwoo问,我们还有一些挑战:
你的断言,网络开发人员现在"几乎可以假设他们的Javascript代码正常工作"是一个很难同意的人.根据我的经验,Javascript几乎总是一个黑洞,一直吸吮你能提供它的能量.像Prototype和Script.aculo.us这样的框架使事情变得更好,但它们还没有像你的问题所假设的那样强硬.
两个主要问题是一个,浏览器支持和两个是开发时间.您依靠的是无法控制的应用程序来处理应用程序的大部分工作量.即使对浏览器进行最小的更新,这也可以解决这个问题.生成HTML服务器端可以在很大程度上缓解这种风险.开发丰富的Javascript前端非常耗时,难以调试,同样难以在各种可用浏览器中进行测试.
虽然这些问题是真实的,但您可以通过客户端Javascript实现一些出色的用户体验这一事实不容忽视.我之前提到的框架暴露了一两年前甚至没有梦想的功能,因此在某些情况下使前期开发价格在很大程度上是值得的(当框架有效实施时有时会大大缩短).
我认为有一个基于Javascript的UI的应用程序,只要决定走这条路线是经过深思熟虑的.我们不会讨论这个问题,因为不是因为使用这种策略的UI潜力很棒.使用基于Web的数据的基于Web的应用程序是完美的候选者(RSS,REST服务).重复使用关系数据库或复杂Web服务的应用程序必然会与服务器端保持更紧密的耦合.
我的2美分.
| 归档时间: |
|
| 查看次数: |
5746 次 |
| 最近记录: |