AJAX jsonp和ajaxComplete

时间:2015-01-02 21:42:20

标签: javascript php jquery ajax jsonp

我想要实现的是在加载给定部分或刚刚完成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网址更改为本地文件,一切正常。

0 个答案:

没有答案