创建动态js文件并缓存它?

时间:2011-10-02 14:33:48

标签: php javascript dynamic

我有一个JavaScript,目前正在5个以上的网站上重复使用,并且随着时间的推移会被更多的网站使用,事情是 - javascript根据服务器名称运行一些检查,我是想知道创建一些JS文件的最佳方法是什么,其中包含一些服务器端变量,例如:

JS-的functions.php:

<script type='text/javascript'>
   var myServer = <?php echo $_SERVER['SERVER_NAME'] ?>;
</script>

目前,这个文件每次都会被下载,所以如何让它发送304未修改,并使用浏览器缓存为我的优势

2 个答案:

答案 0 :(得分:4)

使用.htaccess

RewriteEngine on
RewriteRule javascript.js javascript.php [L]

将您的php文件javascript.php命名为javascript.js

注意:您需要在发送任何输出之前在php文件中设置正确的缓存标头

答案 1 :(得分:2)

我根本不会创建动态JS文件。如果可能的话,将所有动态内容放入主文档中;然后从静态资源加载JavaScript的主要部分。

将您已有的代码放入每个HTML页面的head部分:

<script type='text/javascript'>
var myServer = "<?php echo $_SERVER['SERVER_NAME'] ?>";
</script>

然后链接到静态JavaScript文件:

<script src="http://domain.com/js/script.js">

在JavaScript文件中,不要使用任何PHP;使用myServer变量进行检查。

这样做的好处是,如果Web服务器配置正确,静态JS文件将只加载一次,您不必担心缓存。

您甚至可以在所有5个网站之间共享相同的JavaScript网址。