2013-01-10 16 views
0

我正在使用大量使用ajax來獲取部分視圖的MVC3。如果局部視圖中包含的JavaScript,然後將其添加爲新的js文件,如快照:Ajax上的動態JavaScript文件請求創建衝突

Dynamic JS files on ajax calls

所以如果我有一個js函數:

function checkValue(){ 
    //do work 
} 

在AJAX調用一個新的動態JS文件將被添加包含此功能,並與舊版本衝突。

myfile.js包含:

function checkValue(){ 
    //do work 
} 

和1.js(動態檔案)將包含太

function checkValue(){ 
    //do work 
} 

所以,當我把它歸因於舊文件存在調用它已經存在function已過時。如何解決這種情況,像新的JavaScript代替舊的。

感謝

回答

2

可以檢查東西是否被定義並重新定義它,只有當它是不是:

var checkValue = checkValue || function() { 
    //do work 
}; 

如果你希望你的定義來覆蓋,而不是使用一個名稱定義函數的每個-其他,每次將它們定義爲全局對象上:

window.checkValue = function() { 
    //do work 
}; 
+0

總讓我想起的C的#ifndef的頭:) – Lloyd

+0

如果它被定義還是我不想使用它BEC我需要更新。 –

+0

@ZaheerAhmed每次重新定義它。不要檢查它是否存在。 –