对于以下非常简单的任务:从数据库查询产品列表并将其呈现在网页上,考虑两种设置:
Setup1:PHP脚本查询。所有内容都构建在服务器上,并将整个页面返回给客户端。
Setup2:使用 AJAX 请求内容的静态 HTML“页面骨架”。接收到的内容在客户端使用 Javascript 进行解析,并使用innerHTML 或类似内容进行呈现。
当然,只有当您有页面、类别和标签供客户端用户选择时,第二种设置才有意义。
我需要compare这两者至少通过以下方式:
- 提供内容所需的时间
- 用户体验(setup1作为一个整体交付,setup2分“两部分”交付)
- 可扩展性 - 当我每天有 100,000 个查询时,设置如何比较
关于这个问题的任何想法将不胜感激。
您可能会发现以下问题很有帮助:聪明人VS。 JavaScript/AJAX
我在回答这个问题时提出了几点:
您应该使用服务器端脚本来显示加载页面时已知的任何数据。在这种情况下,您知道应该显示产品列表。事实上,应该在页面加载时显示问题的答案。
您应该只使用 AJAX 调用来加载动态数据not页面加载时已知。例如,当您单击 Stack Overflow 上问题或答案下的“评论”链接时。页面加载时并不知道您想要查看特定问题的评论。
JavaScript 应该not需要访问您网站的核心功能.
当 Javascript 被禁用时,你应该优雅地降级功能。例如,Stack Overflow 在禁用 Javascript 的情况下工作得很好。您无法访问实时 Markdown 预览或动态徽章通知,但核心功能仍然完好无损。
对服务器生成的页面的单个 HTTP 请求的加载速度明显快于加载进行五到六个额外 AJAX 调用的页面的请求,特别是在高延迟连接(如蜂窝网络)上。参见雅虎的加快网站速度的最佳实践.
您应该将 Javascript 视为可能无法启用的额外功能,而不是应该用于构建网站关键部分的东西。此规则也有例外。如果您想要进行某种分页,其中单击“下一页”按钮并且仅产品列表发生变化,AJAX 可能是正确的选择。但是,您应该确保没有 Javascript 的用户不会被排除在查看整个列表之外。
没有什么比由于 Web 开发人员不遵守规范而无法访问页面更令人沮丧的了亲吻原则。举个例子,以友谊餐厅。我想看看他们的菜单当我在商场时,我在 iPhone 上加载了他们的网站,却发现如果没有 Flash,你实际上无法获得有关餐厅的任何有意义的信息。很高兴有精美的菜单和随处可见的甜点,但最后,我只是想看看他们菜单上的项目。我不能这样做,因为他们需要 Flash。在这种情况下,服务的优雅降级会有所帮助。
如果没有 Javascript,网络上的某些事情就无法有效完成。显示产品列表是not其中之一。如果您仍然不确定,请看看其他流行网站是如何做的。我想您会发现大多数成功的、精心设计的网站都遵循上面列出的准则。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)