1

我遇到了一个问题(我仍然需要解决)我的整个页面无法加载。它在元素的中间被切断。

有没有办法使用 jquery 或 javscript 来做类似的事情:

如果(某些元素尚未加载){刷新页面}

我正在考虑将<div id="end_of_page"></div>其放在页面底部,并检查是否已呈现,如果没有,我会知道出现问题并可以重新加载以重试。

谢谢!!

4

3 回答 3

1

您可以使用

$(document).ready(function(){
    // code here
});

该代码只会在页面加载后运行。一个方便的简写是:

$(function(){
   // code here
});

假设您的 jQuery 对象是$. 为了完成您的要求,您可以在加载函数中设置一个变量,然后使用在页面开头设置的计时器来检查它。如果不存在,请重新加载。

就个人而言,我认为您应该花一些时间来弄清楚为什么您的页面只能中途(Firebug 或 Chrome Inspector 可能会帮助您做到这一点,它可能是您页面中的资源导致它挂起,并且由于大多数 HTTP每个主机名一次只发出 2 个请求,它可能会在获取其余请求之前等待它返回)。

于 2012-07-08T21:18:17.577 回答
1

可能是服务器端问题某些脚本或库正在窃取您的 $(又名:“美元”)。

我宁愿建议您调试代码,而不是刷新试图解决问题的页面。

确保您的脚本在head您的文档中,
并且jQuery + 您的jQ 函数在结束</body>标记之前包含在:

(function($){ /*your functions*/ })(jQuery);
于 2012-07-08T21:23:40.820 回答
1

有没有办法使用 jquery 或 javscript 来做类似的事情:

如果(某些元素尚未加载){刷新页面}

可以这样做,是的。在包含 jQuery 之后把它放在头上:

<script>
jQuery(function($) {
    if (!$("#end_of_page")[0]) {
        // Something went wrong, load again
        location.reload();
    }
});
</script>

end_of_page如果在 jQuery 事件触发时元素不存在ready(这意味着在页面完成加载时),您将进入循环的主体(因此,强制重新加载)。

但是:最好弄清楚为什么你页面在中途被切断并解决这个问题。这种解决方法不是解决方案。

于 2012-07-08T21:26:10.757 回答