【发布时间】:2012-01-25 01:49:25
【问题描述】:
最近,我想出了一些关于如何提高整体性能的想法 一个 Web 应用程序,而不是从 Web 服务器生成准备显示的 html 页面,为什么不让它在客户端完全生成。 这样做,只需要将纯数据(在我的例子中是 JSON 格式的数据)发送到浏览器。 这会将 html 生成的工作从服务器卸载到客户端的浏览器,并且 减小返回给用户的响应包的大小。
经过一番研究,我发现这个框架(http://beebole-apps.com/pure/) 和我做的一样。
我想知道的是这样做的利弊。 对于 Web 服务器来说,它肯定更快更好,并且使用现代浏览器,Javascript 代码可以快速运行,因此可以快速完成页面生成。
这种方法的缺点可能是 SEO。 我不确定像谷歌这样的搜索引擎是否会适当地索引我的网站。 您能告诉我这种方法的缺点是什么吗?
Ps:我还附上了示例代码来帮助描述方法如下:
在头部,简单的javascript代码会这样写:
<script type='javascript' src='html_generator.js'/>
<script>
function onPageLoad(){
htmlGenerate($('#data').val());
}
</script>
body中只有一个元素,仅作为数据容器使用如下:
<input type='hidden' id='data' value='{"a": 1, "b": 2, "c": 3}'/>
当浏览器渲染文件时,会调用 html_generator.js 中的 htmlGenerate 函数,并在该函数中生成整个 html 页面。请注意,html_generator.js 文件可能很大,因为它包含很多 html 模板,但由于它可以缓存在浏览器中,因此只会下载一次。
【问题讨论】:
-
我为此使用 ExtJS:sencha.com/products/extjs
-
如果您正在构建一个具有真实用户功能的网络应用程序(例如,电子邮件系统或诸如此类),客户端生成方法可以很好地工作。如果您正在构建一种方法来提供(主要是静态查看的)供公众消费的内容(例如文档或公司营销网站),请发送 HTML 并使用不显眼的 JS 方法。
标签: javascript jquery html seo html-generation