使用php里面的.js文件和性能

时间:2013-12-02 19:12:22

标签: javascript php performance .htaccess

我刚刚意识到(几年后){。3}}在.js文件中使用PHP听起来非常方便(特别是在提供数据库中的语言文本时)

就像这样:

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

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

所以我的问题是,这对性能有多大影响?我想它不再被认为是静态文件了,它不会以同样的方式缓存?

- 编辑 -

注意:我已经通过htaccess

对.js文件使用缓存控制

2 个答案:

答案 0 :(得分:1)

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

正如我在评论中所说,出于三个原因,这不是一个好习惯:

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

答案 1 :(得分:0)

从现在开始影响性能的浏览器将无法缓存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