我想要实现的是在加载给定部分或刚刚完成AJAX调用之后,使用从外部源(通过AJAX jsonp)提取的数据修改某些页面部分(如果该部分在AJAX完成之前加载并且数据可用。)
示例页面部分(domain1.com) - 页面上可能有多个部分:
<div class="mySections" id="section1">
Some content
</div>
<script type="text/javascript">
sectionRewrite("section1");
</script>
其余代码(domain1.com):
myAJAXcomplete = "";
$(document).ajaxComplete(function(){
myAJAXcomplete = true;
});
var mySectionData=new Array();
function sectionRewrite(elementID){
if (myAJAXcomplete == true) {
$(".mySections#"+elementID).html(mySectionData[elementID]);
} else {
$(document).ajaxComplete(function(){
$(".mySections#"+elementID).html(mySectionData[elementID]);
});
}
}
$.ajax({
data: 'some_data=' + some_data,
url: "http://domain2.com/somefile.php",
dataType: 'jsonp',
success: function (data) {
for (var key in data) {
mySectionData[key]=data[key];
}
}
});
从我读到的内容来看,不可能让ajaxComplete用于与外部源的AJAX调用(我让它适用于url在domain1.com上的场景)所以我&#39 ;我正在寻找一些可以以类似方式工作的替代方案:使用外部数据源和快速部分覆盖。
如果myAJAXcomplete!= true,我可以考虑每秒调用sectionRewrite函数,但也许你可以建议更智能/更清洁的东西?
感谢您的帮助。
修改 实时代码: http://technow.pl/example-AJAX.php 此代码不会覆盖部分的内容,也不会调用alert()(我添加到ajaxComplete())。只要我将AJAX网址更改为本地文件,一切正常。