我的服务器用 PHP 实现,现在只是一个数据泵。我使用 JavaScript 在客户端上编写 HTML。
优点
- 减少网络负载(没有 HTML,只有原始数据)
- 减少服务器负载(服务器不必编写)
缺点
- 增加客户端负载
鉴于这些优点/缺点,只要客户端没有负载问题,将 HTML 编写移至客户端似乎是个好主意。
有没有我没看过的角度?
来自评论/答案
可能的缺点
- 机器人可能会失败
- 屏幕阅读器可能会失败
其他优点
- 纯数据可随时用于新设备上的新应用程序
我的服务器用 PHP 实现,现在只是一个数据泵。我使用 JavaScript 在客户端上编写 HTML。
优点
缺点
鉴于这些优点/缺点,只要客户端没有负载问题,将 HTML 编写移至客户端似乎是个好主意。
有没有我没看过的角度?
来自评论/答案
可能的缺点
其他优点
这里有一些你应该在“缺点”下列出的用户故事——还有更多。
我关闭了javascript,因为我有安全意识。你的网站不适合我。
当我使用后退按钮时,我会离开您的网站(绕过这在技术上非常困难) -查看评论-这是有争议的
在使用您的网站很长一段时间后,我的网络浏览器会消耗大量内存,因为它在回收由范围外对象腾出的内存方面很松懈,或者因为您的代码效率不高(IE 特别容易出现这种情况)
我使用的移动设备的 JavaScript 性能比台式机差 - 你的网站对我来说似乎很慢。
我使用屏幕阅读器 - 我无法理解您的网站。
我的名字是 GoogleBot - 您的网站不可索引。
如果这些都不打扰你 - 继续前进。
作为旁白
我应该补充一点——我完全不反对这种应用程序。如果做得好,客户体验可以超越传统的点击、GET、点击、POST、点击、GET等网站。事实上,在我目前的项目中,我一直在开发纯 JavaScript 应用程序,作为我组织网站的 QA 助手和原型。
但我们肯定不会使用我们唯一的网络存在这样的东西。
请定义“客户端负载”
另外,请记住,除非您设置要从同一域提供的数据,否则 JS 无法实际使用它,除非您通过 JSONP 规避 XSS
除非您在 JS 中使用模板系统,否则在 javascript 中创建 html 可能会在一段时间后进行管理,这本质上只是客户端上的 MVC。
性能:JS 比 PHP 快得多,所以我不认为 JS 的缓慢是个问题,但是,DOM 本身在与它交互时很慢,所以与 DOM 的交互越少越好。
您的想法最好的一点是,根据爬虫的说法,“页面加载”将“更快”,因为页面的同步加载才是最重要的。
但是你必须考虑到如果数据是异步填充到 dom 中的,你可能会遇到抓取内容的问题