我在幾個部分視圖中有幾個JS代碼。在MVC應用程序中組織JS代碼
我認爲將所有這些代碼放在單獨的JS文件中以將JS代碼與HTML代碼分開是個好主意。
但你如何處理JS內部的MVC代碼?
下面的例子是我在部分視圖中的JS代碼。我想投入到JS文件,但JS代碼有MVC代碼@Url.Action("ResultForm", "File")
,它不會在JS文件中執行。
有什麼建議嗎?
JavaScript代碼
<script type="text/javascript">
var varTimerSpeed = 5000;
var varTimerInterval;
var onlyOneInstance = false;
startTimer();
function startTimer() {
onlyOneInstance = false;
varTimerInterval = setInterval(loadResultForm, varTimerSpeed);
}
function loadResultForm() {
if (onlyOneInstance) return;
clearInterval(varTimerInterval);
onlyOneInstance = true;
$.ajax({
url: '@Url.Action("ResultForm", "File")',
data: '',
dataType: 'html',
success: function (data) {
$('#ResultForm').html(data);
startTimer();
}
});
};
</script>
不走這條路線的原因是它需要你以不能緩存的方式將相同的JS輸出到每個頁面上,從而增加了站點中每個頁面的整體下載大小。相反,如果您包含引用外部文件的腳本標記,那麼該文件可以是客戶端緩存的,並且只要進行了更改就可以重新下載。 – 2012-08-08 22:12:27