【问题标题】:Including JavaScript direcly through PHP instead of laoding it from the final page throught a script tag直接通过 PHP 包含 JavaScript,而不是通过脚本标记从最终页面加载它
【发布时间】:2010-06-22 21:35:34
【问题描述】:

我需要你对某个主题的意见和知识。

我正在使用大量 JavaScript 的网站上进行开发。在正文标签末尾的脚本标签中,我调用了一个 PHP 文件,该文件收集了我所有的 JS 文件并将它们组合/压缩到一个(较短的)文件中,因此我可以减少对服务器的 HTTP 调用次数。

这一切都很好,有点标准。现在这是我的问题: 排除 src 属性化的脚本标签并首先将所有 JavaScript 直接输出到脚本标签中不是更快更容易吗?那岂不是把用户浏览器接收到的PHP文件调用保存回服务器再收集那些JS文件?

稍微澄清一下: 用户不必先下载一个 HTML 文件,然后调用回服务器来获取 JS 文件(PHP 文件的输出),他/她只需下载一个 html 文件,然后将 JS “硬编码”到一个脚本标签,从而切断第二个服务器调用。

这是一个合理的想法吗?将 javascript 直接包含到页面中是一个坏主意吗?这一切都是动态创建的...通常最好的做法是包含 JS 文件,但似乎这只会更多地加载服务器...我是在做某事还是应该顺其自然?

期待听到你要说的话,

问候米克尔,丹麦

【问题讨论】:

    标签: php javascript include


    【解决方案1】:

    如果您正在为网站上的每个页面创建自定义 JS,那么,是的,您希望将其直接注入页面,而不是让浏览器在之后对 .js 文件执行往返请求页面呈现。

    另一方面,如果您在网站上的页面之间重复使用大量 javascript,则您希望将其作为外部文件引用,以便浏览器缓存它。

    【讨论】:

    • 为什么我什至没有考虑缓存? :) 这是一个很好的观点!从某种意义上说,每个页面的 JavaScript 都差不多,因为 HTML 本身没有任何改变。但并非每个页面都使用所有 JS。这是我首先将其拆分的主要原因 - 仅让浏览器通过在该特定页面上使用的 JS 工作...
    【解决方案2】:

    只需在您的 js 收集脚本中添加 conditional GET 即可。

    【讨论】:

    • 我正在使用条件获取。看起来像 ?type=js&files=jquery.js,forms.js,main.js。我只是想根据上下文消除一些文件,以便在浏览器上更轻松(参见上面的答案......)
    • @lund.mikkel 不,你不是。为什么不在回答之前阅读链接?
    • 对不起,我的回答没有多大意义。我正在使用条件获取!我通过将最后修改日期与文件名的 md5 散列连接来创建一个 etag - 我从我在其他评论中发布的获取变量文件中获得。但是非常感谢这篇文章!在这个主题上最好的之一。做了一些研究,但这个成功了!
    【解决方案3】:

    如果您要生成大量动态 javascript,只需将其粘贴在脚本标记中即可。

    但是,如果有任何样板 javascript 会在每个请求上加载,您需要将其分解到优化的外部文件中以进行缓存。

    但是任何根据请求动态生成的内容都应该放在主页面正文中的脚本标记内,以避免额外的 http 请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 2011-01-13
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      相关资源
      最近更新 更多