2010-10-08 30 views
1

我有一个中等大小的遗留php应用程序,几乎没有JavaScript集成。我最近一直在使用Douglas Crockfords excellent book学习javascript(是的,实际上是在学习它),并将YUI作为我的选择库。我已经尝试了几件事情,并得到了一些工作,但现在我想将各种组件等集成到我的应用程序中,我的问题是如何去做这些以便于维护和代码重用。我应该如何将一些javascript集成到一个php应用程序中?

目前,该应用程序包括

  • PHP页面
  • Smarty模板(有一些特殊的模板标记HTML模板)的网页,让多个模板可用于单页的每个部分。
  • 单个css文件。

我有关于如何将我的javascript集成到页面中的以下想法。

  1. 在每个smarty模板中写入inline javascript和该部分所需的代码。
  2. 编写一个单独的.js文件,与每个链接的smarty模板一起运行,然后使用一个内联脚本运行它。
  3. 为每个php页面提供一个独立的.js文件,该文件具有整个.php页面所需的全部功能。一个小的内联函数可以调用所需的任何函数。
  4. 我还没有做的东西?

这是否有意义?有没有人有这个好的建议?

更新:信息的

一个额外的一点是,它的一个内部应用程序,所以它不是那么重要,限制一切到一个文件中。其他

回答

1

两个选项:

  1. 包含所有JS为整个网站的单个的JS文件。根据您的缓存设置,您应该能够让用户为整个站点下载一个文件,并为每个其他页面使用一个缓存版本。
  2. 根据功能划分你的JS,而不是页面,并且包含每个页面需要的任何功能。例如。一个页面可能需要制表符,表单验证和动画,而另一个页面可能只需要制表符。

或者你可以混合使用这些:一个JS文件包含绝大多数的代码,如果特定的页面或模板需要,还可以包含一个额外的文件。

没有提到的方法是错误(虽然我会尽可能地跳过内联JS);哪一个最好取决于你的确切情况和你的个人喜好。

1

首先,大多数设置允许您在其中可以放置常用页面的主布局模板,或者每个模板都包含一些全局标题。

话虽这么说,你应该做的1,2和3组合:

有被包括在包含全局功能的所有模板的.js。每个模板也可以有选择地拥有自己的.js特定于该页面或页面的一部分。最后,如果页面特定的代码量很小(或者每次都必须动态生成),那么为它启动另一个http连接是没有意义的,因此该源代码在模板中是正确的。

1

如果你没有大量的javascript,然后创建一个外部的js文件并将其包含在网页的标题中并完成它。

相关问题