Java Script Cache和PHP

时间:2015-11-26 22:23:56

标签: javascript php

我创建了一个非常基本的MVC php应用程序。我将来看到的问题是我在脚注中回应java脚本。

问题1 - 这不会被缓存吗?

所以我采用了解决方案来编写单个java脚本,然后包含函数。然后这些函数从PHP中获取参数,然后我只是回显这些函数。例如:

在: 在我的footer.php

<?php 
$phpVariableSelector = "#toTop";
echo '$(document).scroll(function(){
        var e=$(document).scrollTop();
        //console.log("r",e);
        if(e>=200)
        {
            $("'.$phpVariableSelector.'").addClass("in");
        }
        else
        {
            $("'.$phpVariableSelector.'").removeClass("in");
        }
    });

$("'.$phpVariableSelector.'").click( function(e) {
  e.preventDefault(), $("html, body").animate({
    scrollTop: $("body").offset().top
  }, 500)
});'
?>

后:

在,app.js

<script>
function ScrollToTop($linkSelector)
{
    $(document).scroll(function()
    {
        var e=$(document).scrollTop();        
        if(e>=200)//If scrolled 200       
            $($linkSelector).addClass("in");        
        else        
            $($linkSelector).removeClass("in");        
    });

    $($linkSelector).click( function(e) {
      e.preventDefault(), $("html, body").animate({
        scrollTop: $("body").offset().top
      }, 500);
    });
}
</script>

然后在我的footer.php文件中:

<script src="app.js"></script>
<?php
    echo 'ScrollToTop("#toTop")';
?> 

问题2 - 这是正确的使用方法还是有更优雅的解决方案?

1 个答案:

答案 0 :(得分:0)

对于第一个问题:你是对的,它没有被缓存

对于第二个问题,这就是你应该如何做到的:

<script src="app.js"></script>
<script>
    <?php
        echo 'ScrollToTop("#toTop")';
    ?> 
</script>

然而,看起来你总会回显相同的选择器#toTop,如果是这种情况,那么只需在javascript中执行它,因为它永远不会改变,除非选择器在页面之间不同< / p>