【发布时间】:2010-12-03 18:19:13
【问题描述】:
我做过一些基于网络的项目,我遇到的大部分困难(问题、困惑)都可以在帮助下解决。但是,即使在询问了一些经验丰富的开发人员之后,我仍然有一个重要的问题:什么时候可以同时使用服务器端代码和客户端脚本 (JavaScript) 来实现功能,应该首选哪一个? p>
一个简单的例子:
要呈现动态 html 页面,我可以在服务器端代码(PHP、python)中格式化页面,并使用 Ajax 获取格式化页面并直接呈现(服务器端逻辑更多,客户端逻辑更少)。
我还可以使用 Ajax 来获取数据(未格式化,JSON)并使用客户端脚本来格式化页面并通过更多处理来呈现它(服务器从数据库或其他来源获取数据,并返回它使用 JSON 或 XML 发送到客户端。客户端的逻辑更多,服务器端的逻辑更少)。
那么我该如何决定哪一个更好呢?哪一个提供更好的性能?为什么?哪个更人性化?
随着浏览器 JS 引擎的发展,JS 可以在更短的时间内被解释,所以我应该更喜欢客户端脚本吗?
另一方面,随着硬件的发展,服务器性能不断提高,服务器端逻辑的成本会降低,那么我应该更喜欢服务器端脚本吗?
编辑:
有了答案,我想做一个简短的总结。
客户端逻辑的优点:
- 更好的用户体验(更快)。
- 网络带宽更少(成本更低)。
- 提高可扩展性(减少服务器负载)。
服务器端逻辑的优点:
- 安全问题。
- 更好的可用性和可访问性(移动设备和旧浏览器)。
- 更好的 SEO。
- 易于扩展(可以添加更多服务器,但不能使浏览器更快)。
在面对特定场景时,我们似乎需要平衡这两种方法。但是怎么做?最佳做法是什么?
我将使用客户端逻辑,但以下情况除外:
- 安全至关重要。
- 特殊组(禁用 JavaScript、移动设备等)。
【问题讨论】:
标签: performance