代码之家  ›  专栏  ›  技术社区  ›  Toby Allen mercator

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

  •  1
  • Toby Allen mercator  · 技术社区  · 16 年前

    我有一个中型的遗留php应用程序,几乎没有javascript集成。我最近一直在用 Douglas Crockfords excellent book 并采取 YUI 作为我选择的图书馆。我已经尝试了一些东西,也做了一些工作,但现在我想将各种组件等正确地集成到我的应用程序中,我的问题是如何做到这一点,以便于维护和代码重用。

    当前应用程序包括

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

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

    1. 在每个smarty模板中使用该部分所需的代码编写内联javascript。
    2. 编写一个单独的.js文件,与链接到的每个smarty模板一起使用,然后编写一个内联脚本来运行它。
    3. 每个php页面都有一个单独的.js文件,它将具有整个.php页面所需的所有功能。一个小的内联函数将调用所需的任何函数。
    4. 我没想过的事?

    这有什么意义吗?有人对此有好的建议吗?

    更新:

    另外一点信息是,它是一个内部应用程序,所以将所有内容限制为一个文件并不重要。

    3 回复  |  直到 16 年前
        1
  •  1
  •   lonesomeday    16 年前

    其他两种选择:

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

    或者你可以有一个混合的:一个JS文件包含你的大部分代码,如果需要的话,一个额外的文件用于特定的页面或模板。

    上面提到的方法都不是 错误的 (尽管我会尽量跳过内联JS的一个);哪一个是最好的将取决于你的确切情况和你的个人喜好。

        2
  •  1
  •   webbiedave    16 年前

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

    尽管如此, 你应该做1,2和3的组合 :

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

        3
  •  1
  •   Galen    16 年前

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