jquery代码如下:
- JScript code
$("a[obj=materialUpload]").live("click", function () { var ss =window.showModalDialog("MaterialUpload.aspx",window, 'dialogWidth:500px;dialogHeight:400px'); if (ss == "0") { $.ajax({ url: "InputHelper.ashx", type: "get", data: "count=1", success: function (msg) { alert(msg); browse.show(); browse.text("浏览(" + msg + ")"); browse.live("click", function () { common.openWindow("View/Process/ShowMaterialList.aspx?materialId=" + browse.attr("materialId") + "&processId=" + browse.attr("processGuid") + "&itemId=" + $("#hfItemGuid").val() + "&customerId=" + $("hfCustomerId").val(), 850, 700); }); } }); } })
出现的问题比较诡异:
在一个repeater里面有<a>标签,第一次点击时,数据在ashx里面走了一遍,返回;当第二次点击该<a>标签时,ashx文件里面打的断点并没有显示数据有传过来,但jquery的ajax的success属性事件却触发了。奇怪的有两点,1:第二次点击<a>标签时,ashx文件打断点调试,没有走进去,而第一次能进入到ashx文件里;2:第二次点击<a>标签,success绑定的回调函数执行了,但alert(msg)里的msg还是上次(第一次)的msg;
------解决方案--------------------------------------------------------
url 上加上随机数就好了
------解决方案--------------------------------------------------------
var url=MaterialUpload.aspx?r=' + Math.random();
var ss =window.showModalDialog(url,window, 'dialogWidth:500px;dialogHeight:400px');
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
浏览器缓存了请一次请求
所以可以加上随机 让每次请求url都不一样的
jquery的话 可以
type: "get",
cache:false, 告诉浏览器不要缓存