2012-05-22 186 views
0

在頁面加載時,我提出了兩個AJAX請求:一個用於從Youtube頻道提取最新視頻,另一個用於從博客提取最新帖子。兩個腳本都能正常工作多個AJAX請求凍結瀏覽器

無論出於何種原因,我無法在任何瀏覽器(Chrome,Firefox,Safari和Opera)中對其進行測試。請求是否太大?我在使用Chrome時遇到了CORS支持方面的問題(至少這是我認爲正在發生的事情),所以博客請求不在那裏工作,並完全抵消了視頻請求(它不起作用)。

這是我得到的JavaScript開發控制檯在Chrome中的錯誤:

的XMLHttpRequest無法加載http://devingraham.blogspot.com/rss.xml。 Access-Control-Allow-Origin不允許Origin null。

如果我改變...

var tmp = $(this).find("content:first").text(); 

...只是覺得 「標題:第一」,相反,它呈現細微的Safari不結冰。如果我將它保存在內容中​​並加載頁面,我可以很好地看到帖子加載,但是頁面凍結並且不會加載視頻。所以也許它太多了?我知道一個事實,即我正在拉的帖子是相當長的,但它會引起任何問題似乎很愚蠢。那麼你有什麼想法嗎?

這裏的腳本:

<script type="text/javascript" charset="utf-8"> 

    $(function() { 
      $.ajax({ 
      type: "GET", 
      url: "http://gdata.youtube.com/feeds/base/users/devinsupertramp/uploads?orderby=updated&alt=rss&client=ytapi-youtube-rss-redirect&v=2", 
      dataType: "xml", 
      success: parseVideo 
      }); 
      $.ajax({ 
      type: "GET", 
      url: "http://devingraham.blogspot.com/rss.xml", 
      dataType: "xml", 
      success: parseBlog 
      }); 
    }); 

    function parseVideo(xml) { 
     $(xml).find("item:first").each(
      function() { 
       var tmp = $(this).find("link:first").text(); 
       tmp = tmp.replace("http://www.youtube.com/watch?v=", ""); 
       tmp = tmp.replace("&feature=youtube_gdata", ""); 
       tmp2 = "http://www.youtube.com/embed/" + tmp + "?autoplay=1&controls=0&rel=0&showinfo=0&autohide=1"; 
       var iframe = $("#ytplayer"); 
       $(iframe).attr('src', tmp2); 
      } 
     ); 
    } 

    function parseBlog(xml) { 
     $(xml).find("entry:first").each(
      function() { 
       var tmp = $(this).find("content:first").text(); 
       var post = $("#blog"); 
       post.append(tmp); 
      } 
     ); 
    } 
</script> 
+0

打開Firebug,打開NET標籤,並看看該請求/響應序列。這可能會給你一個線索。 –

+0

我只能看到Origin的值爲null。但我不確定這是什麼意思。 – Jon

+0

您是否知道有關AJAX請求的相同原始策略? http://www.w3.org/Security/wiki/Same_Origin_Policy –

回答