【发布时间】:2014-01-22 20:58:28
【问题描述】:
我有一个奇怪的问题,我尝试谷歌但找不到这种行为的原因。
在点击链接之前,打开 firebug 或 chrome 网络标签
问题: 我的初始 ajax 请求阻止了我的网站的首次加载。它仅在刷新后才开始工作。
http://vetosports.com/designer/index.html
您可以看到在第一次加载时不会触发任何 document.ready 和 window.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'];
}
});
知道我做错了什么吗?这是一个大问题,我不能这样。
谢谢, 汤姆
【问题讨论】:
-
我有类似的东西,没有解决方案:stackoverflow.com/questions/16812741/…也许你能找到线索......
-
您是否尝试过查看缓存数据时会发生什么?是导致加载问题的页面响应所需的时间长度吗?
-
您的代码肯定存在一些缓存问题。某些值直到第一次加载才设置,并且在刷新后设置。刚刚确认它在您的页面上尝试 Cntrl + F5。
-
@Liam 我不确定如何检查它...我不确定是什么原因导致它...
-
@RajeshDhiman 我一直在考虑,但是实际 AJAX 请求中使用的所有变量都是在 AJAX 代码之前定义的
标签: javascript php jquery ajax