【问题标题】:Using php inside .js files and perfomance [closed]在 .js 文件和性能中使用 php [关闭]
【发布时间】:2013-12-18 14:45:42
【问题描述】:

我刚刚意识到(几年后)its posible 在 .js 文件中使用 PHP 听起来很方便(尤其是在提供数据库中的语言文本时)

就像这样:

AddType application/x-httpd-php .js
AddHandler x-httpd-php5 .js

<FilesMatch "\.(js|php)$">
SetHandler application/x-httpd-php
</FilesMatch>

所以我的问题是,这对性能有多大影响?我猜它不再被视为静态文件,并且不会以相同的方式缓存?

-编辑-

注意:我已经通过 htaccess 对 .js 文件使用缓存控制

【问题讨论】:

  • 我无法回答您关于性能的问题,但我可以告诉您这不是一个好习惯……您可以从 PHP 脚本中以 JSON 格式输出您想要说的任何内容,然后访问它通过你的 JS 文件...
  • 嗨@Mahdi,这就是我目前正在做的事情。这就是我询问性能的原因;)
  • 这对性能的影响程度取决于 JS 文件的大小、处理服务器的速度以及许多其他变量;被问到这是无法回答的。
  • 好吧,我猜如果它以相同的方式缓存是否有答案;) @iambriansreed
  • 好吧,我也会投票关闭它。

标签: javascript php performance .htaccess


【解决方案1】:

网络浏览器将无法查看它是否来自 PHP,但是您可以手动设置自定义 HTTP 标头,例如 Cache-ControlExpiresLast-Modified,以使浏览器缓存您的动态 Javascript文件,但它会破坏使它们动态的目的,除非您确保这些 Javascript 文件不会在一段时间内(例如一天)更新,然后设置适当的标头来控制浏览器缓存。

正如我在 cmets 中所说,这不是一个好习惯,原因有以下三个:

  1. 通过 PHP 处理 Javascript 文件的开销——性能问题。
  2. 您必须关闭客户端 Web 浏览器中的缓存机制,以便他们能够获取最新和更新版本的 Javascript 文件 -- 再次出现性能问题。
  3. 如果您让 Web 浏览器缓存文件,那么一些用户将无法获得最新的 Javascript 文件——或者换句话说,它不再是动态的。

【讨论】:

    【解决方案2】:

    影响性能,因为从现在开始,浏览器将无法缓存 javascript 文件。让您的 javascript 文件处理来自远程源的数据。

    我通常倾向于做的事情如下:

    在您的视图 (php) 中,您定义了一个配置 javascript 对象:

    var CompanyNS.modules.whatever.config = {
        id: <?php echo $object->getId(); ?>,
        name: <?php echo $object->getName(); ?>
    }
    

    在你的 javascript 中:

    var config = CompanyNS.modules.whatever.config;
    // do whatever you need with the dynamic data
    

    【讨论】:

    • 您好,感谢您的回答;到目前为止,这几乎就是我正在做的事情,我有点想象这不会是一个很好的计划,但它总是欢迎重新考虑
    猜你喜欢
    • 1970-01-01
    • 2013-02-09
    • 2021-12-14
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多