我该如何将一些javascript集成到php应用程序中?

时间:2010-10-08 21:30:50

标签: php javascript yui integration smarty

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

目前,该应用程序包含

  • php pages
  • 智能模板(带有一些特殊模板标记的html模板),用于页面的每个部分,因此可以为单个页面使用多个模板。
  • 单个css文件。

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

  1. 使用该部分所需的代码在每个智能模板中编写内联javascript。
  2. 编写一个单独的.js文件,以便与链接的每个智能模板一起使用,然后使用单个内联脚本来运行它。
  3. 每个php页面的单独.js文件,它具有整个.php页面所需的所有功能。一个小的内联函数可以调用所需的任何函数。
  4. 我还没有做过什么?
  5. 这有什么意义吗?有没有人对此有好的建议?

    更新

    一个额外的信息是它的内部应用程序,因此将所有内容限制为单个文件并不那么重要。

3 个答案:

答案 0 :(得分:1)

另外两个选择:

  1. 包含整个站点的所有JS的单个JS文件。根据您的缓存设置,您应该能够让用户只为整个站点下载一个文件,并为每个其他页面使用缓存版本。
  2. 根据功能而不是页面划分您的JS,并包含每个页面所需的任何功能。例如。一个页面可能需要选项卡,表单验证和动画,而另一个页面可能只需要选项卡。
  3. 或者你可以混合使用这些:一个包含绝大部分代码的JS文件和一个特殊页面或模板需要的额外文件。

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

答案 1 :(得分:1)

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

话虽如此,你应该做1,2和3的组合

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

答案 2 :(得分:1)

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