【问题标题】:AJAX preventing initial page loadAJAX 防止初始页面加载
【发布时间】:2014-01-22 20:58:28
【问题描述】:

我有一个奇怪的问题,我尝试谷歌但找不到这种行为的原因。

在点击链接之前,打开 firebug 或 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'];

    }
});

知道我做错了什么吗?这是一个大问题,我不能这样。

谢谢, 汤姆

【问题讨论】:

  • 我有类似的东西,没有解决方案:stackoverflow.com/questions/16812741/…也许你能找到线索......
  • 您是否尝试过查看缓存数据时会发生什么?是导致加载问题的页面响应所需的时间长度吗?
  • 您的代码肯定存在一些缓存问题。某些值直到第一次加载才设置,并且在刷新后设置。刚刚确认它在您的页面上尝试 Cntrl + F5。
  • @Liam 我不确定如何检查它...我不确定是什么原因导致它...
  • @RajeshDhiman 我一直在考虑,但是实际 AJAX 请求中使用的所有变量都是在 AJAX 代码之前定义的

标签: javascript php jquery ajax


【解决方案1】:

实际上并没有卡在designhandler.php

看起来问题是在那之后。之后必须查看您在做什么才能发现问题。

一个好建议 - 在您的服务器端脚本中记录不同的阶段,看看什么时候事情无法继续。

希望有帮助

【讨论】:

  • 我知道问题出在哪里了。我的$(window).load() 在 preload.js 甚至发送和接收来自 ajax 的响应之前就开始了...但不知道为什么它只在网站的初始启动
  • 在你的 JS 周围抛出一些警报,看看哪些运行,哪些没有运行。但是我仍然倾向于认为您的问题很可能是服务器端的。
猜你喜欢
  • 2013-12-10
  • 2011-07-09
  • 2010-10-30
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多