下载脚本时放置ajax响应

时间:2012-06-09 15:09:22

标签: asp.net ajax

我有一个简单的网站,使用ajax抓取html并将其放在某个div(AjaxPlaceHolder)中。

例如,这是我的网页:

<html>

    <body>
           // some html...

           <div id="AjaxPlaceHolder"></div>

    </body>

    <div id="footer"></div>

</html>

现在我的问题是,当我使用ajax获取html时,我会得到类似的内容:

<script type="text/javascript" src="js/someJsFile.js"></script>
<table>html content</table>
// more html

注意这一行:

<script type="text/javascript" src="js/someJsFile.js"></script>

我不想在浏览器下载该文件(someJsFile.js)之前放置html内容。我怎么能告诉浏览器何时下载该脚本?我知道我可以在那里放置someJsFile.js内容并将其包装在<script type="text/javascript">标签周围但如果我可以将.js文件分开则会很好。

编辑:

以下是我想要做的事情:

使用ajax获取html。不要渲染html(同时将它放在一个隐藏的div中)文件完成后下载必要的图像和脚本

1 个答案:

答案 0 :(得分:1)

您可以将javascript文件加载与html ajax加载的其余部分分开。

如果将其分开,则可以同步加载外部脚本,这样就可以确保它们首先加载。

在简单的javascript中,您在打开时设置了Synchronous标志。

function getFile(url, passData) {
  if (window.XMLHttpRequest) {              
    AJAX=new XMLHttpRequest();              
  } else {                                  
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (AJAX) {
    AJAX.open("POST", url, false);
    AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    AJAX.send(passData);
    return AJAX.responseText;                                         
  } else {
     return false;
  }                                             
}

var fileFromServer = getFile('http://domain.com/scr.js', sendThisDataAsAPost);

在jQuery中

jQuery.ajax({
        type: "GET",
        url: url,
         async : false,
        success: callback,
        dataType: "script",
        cache: true
});

关于同步通话:http://www.hunlock.com/blogs/Snippets:_Synchronous_AJAX

jQuery调用:http://api.jquery.com/jQuery.ajax/