0

我使用backbone.js 和require.js 制作了一个简单的应用程序。早些时候,我曾经只有一个 index.html 文件并用于动态渲染/隐藏不同的视图。现在使用 require.js,我仍然有 index.html 文件,但我为应用程序中的四个视图中的每一个创建了单独的 html 文件,并将它们全部放在模板文件夹中。重点是,这四个 html 文件没有<!DOCTYPE html></html>标签,只有<div>视图的标签。

我不确定这是使用 require.js 的正确方法。我应该将所有 html 代码集成到一个 index.html 中并使用<script>标签进行模板化吗?

4

2 回答 2

1

依靠...

大多数情况下,我会将它们分开,因为它更有条理且更易于维护,但是...如果它们太多(让我们称它们为“瓷砖”),它可能会使您的网站变慢,因为您将进行多次服务器旅行来绘制该站点,我在某处读到,当浏览器必须同时发出超过 4 个 HTTP 请求时,您将因性能下降而受到惩罚,我将尝试找到源并在此处发布。

如果您的图块始终在一起,我认为将所有内容放在一个 HTML 中是可以的,因此您可以使用单个 HTTP 请求获取所有内容,但不利的一面是,当您更新单个模板时,客户端缓存所有模板下地狱。

另一种解决方案是将它们放在单独的文件中,以便它们更有条理,并使用构建工具创建一个用于生产的大型缩小模板文件,但这需要一些工作。

因此,您必须为您的网站找到最佳方式。

PS:您是否使用模板机制?我发现它们在这种情况下真的很有帮助。

于 2012-11-21T12:54:31.423 回答
1

你不应该把你的模板放在一个大的 html 文件中,require.js并且Backbone.js是把所有东西都放在高度灵活的模块中的完美组合,只有在必要时才加载。

只有几个模块你可能不会注意到它们的优势,但相信我,如果你编写更复杂、动态增长的高速 Web 应用程序,你可以节省大量的调试和重构时间,并且你的代码将非常易于阅读和修改。

您有几种方法可以使用 Backbone 处理模板,例如,this.$el.html( _.template(template, this.model.toJSON() ))如果您将模板加载到template变量中。

它不会影响速度,模板只有几千字节。与您的页面可能已经加载了十几个文件(许多图标、一些图像、css-es、js-es)这一事实相比,即使没有BB.jsorRequire.js和模块,一个新的几 KB 大文件也不会引人注目。此外,如果您使用Require.js加载模板,您可以在首次加载后缓存模板。

于 2012-11-21T18:25:57.433 回答