2014-01-22 145 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