浏览器因ajax请求而卡住
我开发了一个简单的网站,它使用ajax加载内容,在加载内容的同时,我显示了一个进度。在第一次ajax调用中,一切都按预期进行,但在那之后,一切都变得一团糟浏览器因ajax请求而卡住,ajax,jquery,Ajax,Jquery,我开发了一个简单的网站,它使用ajax加载内容,在加载内容的同时,我显示了一个进度。在第一次ajax调用中,一切都按预期进行,但在那之后,一切都变得一团糟 页面被ajax调用卡住了 我已经编写了一个函数来监听ajax调用并显示加载消息,但它也不起作用,在第一次ajax调用之后,页面变得非常滞后和缓慢 这是我的ajax函数 function loadPage(path) { $.ajax({ type: "POST", context: document.body, dat
function loadPage(path) {
$.ajax({
type: "POST",
context: document.body,
dataType: "html",
timeout: 10000,
url: path
});}
我尝试异步到true,但默认为true。但还是没用。该问题的演示可以在以下位置看到:已删除,因为问题已解决
这在本地主机上运行得非常好,但当我将其上传到远程服务器时,问题就开始出现了。请专家指出我做错了什么?我试着删除所有的小动画,没有帮助
问题是我在每个ajax cal上加载javascript文件,导致太多get和post请求以及不必要的dom更改。您的页面似乎每次单击都很慢,因为每次单击都会不断加载javascript文件,而不是在页面加载时只加载一次javascript,因为你正在抓取整个HTML页面 比如说。。每次你点击主页。。这些文件将再次加载到页面中
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,最好只加载片段中的内容,这样就不必在每次单击菜单时加载所有脚本。。或者加载数据并在内容中填充数据
您是否尝试过使用jQueryload()方法加载HTML片段,以避免再次加载整个HTML DOM
像这样:
$("#load_area").load("portfolio_item.html #ID_of_content_to_grab");
上面将转到portfolio_item.html并从内容的id#id_抓取html片段,然后将其插入加载区域
更新:
在插入新内容之前,您还可以尝试清空#load_区域
$("#load_area").html("");
$("#load_area").load("portfolio_item.html #ID_of_content_to_grab");
或者您可以使用jquery。。或者测试两者
..正在加载的内容。。你是否将所有的js加载到主页上,然后只将片段加载到内容中?这些更改现在是否在您的网站上进行?。。你的站点上有哪些js文件需要检查这些新的更改?当我转到你上面的链接时,它显示你仍然加载页面中的所有html和js,每次单击加载索引页面上的所有资源。工作很好:-)非常感谢:)太好了。。很高兴为您提供帮助:)我还注意到,如果您想避免每次单击菜单时滚动条消失和重新出现,可以在#load_area div中添加一个最小高度。。比如最小高度:500px;因此,这样滚动条将保持可见,而不会在单击顶部菜单时左右推动身体