Javascript性能问题使用Javascript .php代替Javascript .js


Javascript performance issue using javascript.php instead of javascript.js

使用

是否存在性能问题?
<script src='javascript.php'></script> //.php

代替

<script src='javascript.js'></script> //.js

javascript.php(需要它来访问会话值)

<?php header("Content-type: application/javascript"); ?>
$(function() {
    $( "#progressbar" ).progressbar({
        value: <?php echo $_SESSION['value'] ?>
    });
   // ... more javascript ...

这是一个性能问题,但不是您可能期望的原因。的确,解析PHP文件比提供静态JS文件多花几分之一秒的时间,但真正的杀手是无法缓存PHP文件,因为它包含一个不断变化的变量。客户端必须一次又一次地下载文件。

正确的方法是在HTML文件中设置JavaScript变量。

<script>
    var session = <?php echo json_encode( $_SESSION[ 'value' ] ); ?>; 
</script>
<script src='javascript.js'></script>

javascript.js:

$(function() {
    $( "#progressbar" ).progressbar({
        value: session
    });

现在可以安全地缓存脚本文件,因为它保证具有静态内容。

这是一个观点问题,但"更正确"的方法是使用AJAX调用从服务器提取任何动态值。

PHP版本会比较慢,因为你必须在服务器上运行PHP来生成Javascript。

在客户端上不会有任何性能差异。它不关心JS是如何创建的,它只是文本。