2015-11-26 72 views
0

我創建了一個非常基本的MVC php應用程序。我將來看到的問題是我在腳註中迴應了Java腳本。Java腳本緩存和PHP

所以問題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 - 這是正確的方法嗎?還是有更好的解決方案?

回答

0

關於第一個問題:你是正確的沒有被緩存

關於第二個問題,這是你應該如何正確的IT:但是它看起來像你將永遠回聲出

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

同樣的選擇器#toTop,如果是這樣的話,那麼只需在javascript中執行它,因爲它永遠不會改變,除非選擇器會因頁面而異

+0

是的,我想這樣寫...只是忘了它看來。這只是一個基本的例子來說明我的觀點。選擇器將會/可以在頁面之間改變。好的,謝謝我只是在接受你的答案之前等待一兩天,看看別人怎麼說。 –

+0

由於選擇器會發生變化,因此這是寫入它的正確方法,不僅僅是因爲緩存,而且也不是爲了重複自己,而是在每個頁面中寫入相同的冗餘代碼,以及每當需要更改某些內容時代碼你會改變它在一個地方,而不是所有的網頁。 –