当前位置:  开发笔记 > 编程语言 > 正文

Smarty Vs. 的JavaScript/AJAX

如何解决《SmartyVs.的JavaScript/AJAX》经验,为你挑选了1个好方法。

我有一个疑问: - 是否有任何标准/惯例,何时我应该使用"Smarty模板",何时应该使用Javascript Ajax调用来生成内容?我可以使用Ajax/Javascript调用动态生成内容.

我的应用程序使用Ajax和Smarty,但我想为开发人员设置规则



1> William Bren..:

您应该只使用AJAX调用来加载页面加载时未知的动态数据.例如,当您在Stack Overflow上单击给定问题/答案的"comments"链接时,将进行AJAX调用以动态加载数据.这是用户单击评论链接的结果,而不是页面加载的结果.您不知道在页面加载时应该显示这些注释,因此在这种情况下进行AJAX调用是合适的.

您应该使用模板显示加载页面时已知的任何数据.它可以更轻松地处理禁用Javascript的人(我知道,不是很多),它提供了逻辑与表示的明确分离.使用模板的另一个重要好处是可以显着减少从客户端浏览器发出的HTTP请求的数量.

这在移动浏览领域尤为重要,因为延迟而不是带宽是您最大的障碍.例如,在移动版Safari中,对Smarty-templated页面的单个HTTP请求的加载速度明显快于加载Javascript模板化页面的请求,该页面会产生五到六个额外的HTTP请求.使用EDGE,3G和其他非wifi移动数据服务时尤其如此.事实上,这是非常重要的,它是雅虎加速网站最佳实践的第一个指南.

理想情况下,在禁用Javascript时,您还应该优雅地降级功能.一个很好的例子是自动完成搜索框.在您键入时神奇地显示建议的搜索字词真的很酷,但如果您关闭Javascript,您仍然有一个功能搜索框.这是服务质量下降的典型例子.Stack Overflow通常可以提供稳定的非Javascript体验.它缺少的一个地方是评论.禁用Javascript时,仅显示最常用的注释,并禁用发布新注释.

除非绝对必要,否则您应该将Javascript视为可能未启用的奖励功能,而不是应该用于构建网站关键部分的内容.显然存在异常(如果没有Javascript,有些事情就无法完成).例如,您会注意到,在关闭Javascript时,Stack Overflow非常有用.发布新答案时,您将无法获得实时更新,也无法获得真实的Markdown预览,但核心功能仍然存在.所有的"繁重"都是用HTML和CSS完成的.Javascript只是锦上添花(肯定是非常好的结冰).这是一个侧面说明,但重要的是要提到.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有