2013-10-18 158 views
0

我开发了一个简单的网站,它使用Ajax来加载内容,而内容加载时,我正在显示进度。工程预期在1日Ajax调用的一切,但在那之后,它成为一个烂摊子浏览器卡在ajax请求

  1. 页卡住的Ajax调用
  2. 我写了一个函数来听Ajax调用显示加载消息,这不是” t也可以工作,并且在第一次ajax调用之后页面变得非常缓慢和缓慢。

这是我的ajax函数。

function loadPage(path) { 
$.ajax({ 
    type: "POST", 
    context: document.body, 
    dataType: "html", 
    timeout: 10000, 
    url: path 
});} 

我试图将async设置为true,但默认为true。仍然没有帮助。这个问题的演示可以看到:已解决因为问题已解决

这在本地主机上运行得很好,但只要我将其上传到远程服务器,就会出现问题。请专家指点一下我做错了什么?我试图删除所有这些动画,没有帮助。


问题是我在每个ajax cal上加载javascript文件导致太多的get和post请求和不必要的dom变化。

回答

1

您的网页似乎是每次点击都慢,因为你不断装上每一个JavaScript文件点击,而不是只加载JavaScript的一次加载网页时,因为你抓住了整个HTML页面

像例如..每次点击HOME ..这些文件被加载再次页面时..

POST http://3rsmj.com/new/home.html 

GET http://3rsmj.com/new/js/liquid/jquery.easing.1.3.js?_=1382114556389 

GET http://3rsmj.com/new/js/liquid/jquery.touchSwipe.min.js?_=1382114556390 

GET http://3rsmj.com/new/js/liquid/jquery.liquid-slider-custom.min.js?_=1382114556391 
使用AJAX

如果最好只加载内容或片段,没有加载所有的脚本在每个菜单上单击..或加载数据并填充内容中的数据

你试图寻找到jQuery的负载()在HTML片段加载方法,所以不必在整个HTML DOM加载再次

http://api.jquery.com/load/

这样的:

$("#load_area").load("portfolio_item.html #ID_of_content_to_grab"); 

以上将转至portfolio_item.html并从id中获取html片段#ID_of_content_to_grab ð将其插入#load_area

UPDATE:

你也可以尝试清空#load_area您插入新的内容

$("#load_area").html(""); 
$("#load_area").load("portfolio_item.html #ID_of_content_to_grab"); 

,或者你可以使用jQuery empty()之前。 。或同时测试

..

+0

感谢您的快速响应。 尝试.load()....仍然是一样的。 – DriverBoy

+0

什么是在加载..你有所有的js加载在主页面,然后只加载片段的内容?那么现在你网站上的这些变化是什么?..以及你网站上的js文件有什么新的变化来检查你的网站?当我去你的链接上面显示你仍然加载页面中的所有html和js每个点击 –

+0

加载索引页面上的所有资源。工作正常:-) 非常感谢:) – DriverBoy