javascript - Ajax 请求上的动态 JavaScript 文件会产生冲突

标签 javascript ajax asp.net-mvc-3

我正在使用 MVC3 并大量使用 ajax 来获取部分 View 。如果部分 View 包含 JavaScript,则它将作为新的 js 文件添加,如快照所示:

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 替换旧的 JavaScript 一样。

谢谢

最佳答案

您可以检查某些内容是否已定义,只有在未定义时才重新定义它:

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

如果您希望定义相互覆盖,而不是使用名称定义函数,请每次在全局对象上定义它们:

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

关于javascript - Ajax 请求上的动态 JavaScript 文件会产生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14255089/

相关文章:

javascript - 您可以将 rel=opener 与 window.open() 一起使用吗?

javascript - 选中时从数组中删除值

php - 获取两个下拉列表的值

c# - 在 ASP.NET MVC3 中验证表单时,有什么方法可以忽略某些属性(在 POCO 上)?

asp.net-mvc-3 - 创建自定义成员资格提供程序的示例代码

php - 将 javascript 数组传递给 php 来打印值不起作用

javascript - AmCharts 基于数据的动态列

javascript - Jquery ajax请求无法将数据返回给其他函数

c# - 使用 jQuery Ajax 将对象列表传递给 ActionResult MVC Controller 方法

c# - 如何使用 FtpWebRequest 上传图片?