我已经完成了一些基于网络的项目,我遇到的大多数困难(问题,混淆)都可以在帮助下找到.但是我仍然有一个重要的问题,即使在询问了一些有经验的开发人员之后:当使用服务器端代码和客户端脚本(JavaScript)实现功能时,应该首选哪一个?
一个简单的例子:
要渲染一个动态HTML页面,我能格式化服务器端代码(PHP,Python)的页面,并(在客户端更多的逻辑在服务器端,以下)使用Ajax来获取格式化的页面直接呈现它.
我还可以使用Ajax来获取数据(未格式化,JSON),并使用客户端脚本来格式化页面,并与更多的处理使得它(服务器从一个数据库或其他来源的数据,并将其返回给客户端使用JSON或XML.客户端更多逻辑,服务器更少逻辑.
那么我怎样才能决定哪一个更好?哪一个提供更好的性能?为什么?哪一个更方便用户?
随着浏览器的JS引擎的发展,JS可以在更短的时间内解释,所以我更喜欢客户端脚本吗?
另一方面,随着硬件的发展,服务器性能不断提高,服务器端逻辑的成本也会降低,所以我更喜欢服务器端脚本?
编辑:
有了答案,我想简要总结一下.
客户端逻辑的优点:
更好的用户体验(更快).
减少网络带宽(降低成本).
提高可扩展性(减少服务器负载).
服务器端逻辑的优点:
安全问题.
更好的可用性和可访问性(移动设备和旧浏览器).
更好的SEO.
易于扩展(可以添加更多服务器,但无法使浏览器更快).
在面对特定情况时,我们似乎需要平衡这两种方法.但是怎么样?什么是最佳做法?
除以下条件外,我将使用客户端逻辑:
安全关键.
特殊群组(禁用JavaScript,移动设备等).