2014-01-22 191 views
0

我有一個奇怪的問題,我試圖谷歌,但無法找到這種行爲的原因。AJAX阻止初始頁面加載

你點擊一個鏈接之前,把螢火蟲或Chrome網絡選項卡

問題上: 我最初的Ajax請求阻止我的網站的第一個負載..它只是開始後刷新工作。

http://vetosports.com/designer/index.html

你可以看到,沒有document.readywindow.load事件不斷髮射了第一次加載......只要你刷新頁面,一切正常

您可以在網絡選項卡看到,它被卡在designhandler.php ...發送請求designhandler.php的代碼是:

var urlFetch = "designhandler.php" 
$.ajax({ 
    type: "POST", 
    url: urlFetch, 
    dataType: 'json', 
    cache: false, 
    data: { 
     sport: chosenSport 
    }, 
    success: function(resp){ 
     mainData=resp; 
     console.log(mainData); // in the console I can see the correct response 
     var jArr = resp.garments.jersey.designs; 
     var socArr = resp.garments.socks.designs; 
     var shoArr = resp.garments.shorts.designs; 

     for (jID in jArr) { 
      if (jArr[jID]['default'] == "y") { 
       globalJID = jID; 
      } 
      if (jArr[jID]['featured'] == "y") { 
       featArr.push(jID); 
      } 
     } 
     for (socID in socArr) { 
      if (socArr[socID]['default'] == "y") { 
       globalSocID = socID; 
      } 
     } 
     for (shoID in shoArr) { 
      if (shoArr[shoID]['default'] == "y") { 
      globalShoID = shoID; 
      } 
     } 

     fLayers = mainData.garments.jersey.designs[globalJID]['frontLayerCount']; 
     bLayers = mainData.garments.jersey.designs[globalJID]['backLayerCount']; 

    } 
}); 

任何想法,我究竟做錯了什麼?這是一個大問題,我不能這樣說。

感謝, 湯姆

+0

我有類似的東西,也沒有解決辦法:http://stackoverflow.com/questions/16812741/firebug-lite-for-chrome-spoils-hover-effect-and-mouseover - 事件也許你可以找到一個線索...... – k102

+0

你有沒有試過看數據緩存時會發生什麼?是頁面響應導致加載問題所需的時間長度? –

+0

您的代碼存在一些明顯的緩存問題。直到第一次加載時纔會設置一些值,並在刷新後進行設置。剛剛確認它在您的網頁上嘗試Cntrl + F5。 –

回答

0

實際上它不停留在designhandler.php

它看起來像問題之後。在發現問題後,你必須看看你在做什麼。

一個很好的建議 - 在服務器端腳本中記錄不同的階段,並查看哪些事情無法繼續。

希望幫助

+0

我看到了什麼問題。我的$(window) .load()'在preload.js甚至發送和接收來自ajax的響應之前啓動......但不知道爲什麼它只是在網站的初始啓動時才這樣做 –

+0

在你的JS周圍發出一些警報以查看哪些運行什麼都沒有。但是我仍然傾向於認爲你的問題很可能是服務器端的問題。 – Hamster