1

当用户在我的应用程序中打开一个新对话框时。我正在获取负责处理该对话框的对话框 HTML 和脚本。当我再次打开同一个对话框时。

似乎浏览器正在从上一个对话框中缓存我的 javascript。所以在某些情况下,我有运行两次的脚本。

我正在做的例子:

var html = $.get('/somepage');
dialog.empty().append(html);
dialog.dialog("open");

我该如何克服呢?

这是一个有助于解释问题的示例

<html>
<head>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script id="myscript">var seachForMe = 1;</script>
<script>
    $(document).ready( function(){
        $("#clickme").click(function() {
            $("#centent").empty().append($("<span>some text </span>")).append($("#myscript").clone());
        });
    });
</script>
</head>
<body>
<div id="centent"></div>
<input type="button" id="clickme" value="click me again and again">
</body>
</html>

我正在使用克隆,因为它将是一个从服务器返回的新脚​​本,我清空了内容 div,但脚本仍然在浏览器中。

4

1 回答 1

2

这应该可以解决问题:

   var html = $.ajax({
        url: '/somepage',
        cache: false,
        type: GET
    });

也就是说,如果您的问题确实出在缓存上。

于 2013-07-26T17:12:40.240 回答