2013-03-06 91 views
3

我正在研究一个网站,虽然网站的数据量不是很大,但却有足够的JavaScript让我觉得它会从requirejs中受益。我们打破页面(和功能)的模块化方式似乎也支持这一点。requirejs - 在非SPA网站中的使用

尽管在单页应用程序中使用requirejs有很多示例,但在非SPA网站上看不到很多示例。

例如,我正在使用jQuery UI选项卡,我希望在每个页面上运行这些选项卡。所以我想运行一些像$('.tabs').tabs();你可以把它放在你的main.js/app.js(或你指定的data-main)吗?

第二个问题。该页面使用HTML/CSS模块构建。网站后面的CMS知道哪些HTML/CSS模块在页面上,因此我可以动态编写requirejs配置,以便知道要初始化哪些JavaScript模块。这是一种常用的方法吗?虽然我实际上可能包含所有JavaScript文件,但我很想优化main.js中的代码,以确保它只执行正在页面上使用的模块的代码。有没有人做过这个?

非常感谢,

詹姆斯。

+0

你可能想看看http://requirejs.org/docs/api.html #modulenotes。你会发现你可以把你的JavaScript放到需要其他模块/模块部分的模块中。这被称为AMD(http://requirejs.org/docs/whyamd.html#sugar)。这样你就不必在全球基础上要求你的脚本。你只是让你的模块需要他们的需求。 – mayrs 2013-03-08 16:16:42

回答

0

您需求的解决方案不同的是,

main.js应具有的功能,将在要求被调用(不同的需求 - 不同的功能)

这将确保只有所需的代码运行。

或者,如果你可以定义动态的JS >>将在每个新的函数调用重新创建。由CMS,其复杂但可能。就像在浏览器类型和版本检查的基础上调用的动态CSS一样。

-

调用js文件中的所有文件

如果您使用的是PHP或APS或.NET(你可以使用一些头文件或主文件调用的是“JS”文件一次,否则必须手动添加静态文件的情况下,js文件链接到每一个文件,或者

您可以使用它我们已经在所有文件中使用的其它JS文件中调用JS文件

更新:试试这个JS动态地添加JS file的代码这里需要的,而不是在每一页上..

$("head").append('<script type="text/javascript" src="global.js"></script>'); 

这将动态地添加脚本文件的网页上,其中调用。所以,在JS中使用或在script标签下的页面中添加此行;并提供所需的文件路径,即这里src="global.js"

我希望这种帮助,如果有任何疑问,请回复:)

+0

嗨MarkiK - 我不难动态地写入正确的JavaScript,所以我可能会这样做。这实际上是一个如何从只有某些CMS模块需要的代码中分离全局(始终执行的代码)的问题。我是否将全局JS调用硬编码到main.js中,或者查看一个更可维护的方式来执行此操作?全球JS的一个例子是一个分析模块。 – James 2013-03-12 09:14:41