jquery SLOW来调用get或post

时间:2014-07-12 19:19:27

标签: javascript php jquery

这里有一个heisenbug ......

在这里有一个PHP / codeigniter应用程序。很确定控制器/型号等是健全的,没有错误。一定是客户端问题......

页面中非常简单的代码:

<div id="stuff">I'm empty now!</div>

<script language="javascript">
$(document).ready(function(){
    var stuffID = <?=$id?>;
    $.post('/event/viewStuff/'+stuffID,
        function(response) {
            $('#stuff').html(response);
        }
    );
});
</script>

加载上面的内容后,&#34;东西&#34; div现在有一个东西网格,以及一次分页10个链接,看起来像这样:

<a href="#" onclick="$('#stuff').html('Wait please...'); $.get('http://localhost/event/viewInvitees/22/30', function(response) {$('#stuff').html(response); }); return false">Next Page</a>

但是每次点击这些链接时,页面会冻结4-5秒,执行我不知道的事情 - 没有网络活动,也没有任何铬调试器。那么&#34;东西&#34; div重新加载结果。此外 - &#34;请等待&#34;消息未显示。奇怪的是 - 当我抽出&#34; document.ready()&#34;功能,重新加载页面,只需点击上面的裸/硬编码分页链接,事情会按预期快速消失。

非常感谢你花时间阅读。

新信息:

xdebug配置文件显示没有异常 - 大约1秒函数回调到控制器/视图以按预期返回内容。

Chrome分析器显示了这一点 - 一个愚蠢的,无法解释的空闲:

enter image description here


关于&#34; b.event.remove()&#34;的任何其他见解jquery功能需要6秒以上?这似乎是个问题?

2 个答案:

答案 0 :(得分:1)

修正了它 - 但不明白根本原因:

如上所述 - 每次点击“下一页”链接时都会出现大量延迟。

Javascript分析证明jquery 1.9.1在b.event.remove()上挂了约6秒。不知道为什么。我心想:“嗯...也许我已经触发了一些非常低效的拆卸功能。#material div相当大(很多子表格等)。”

所以我尝试通过将此命令添加到链接点击代码来清除它:

$('#stuff').html('');

没有骰子。然后我试了一下:

$('#stuff').empty();

同样的交易 - 花了更长的时间。

在云雀上,我尝试了非jquery方法:

document.getElementById('stuff').innerHTML = '';

有效!其余的点击代码立即执行 - 不再拖延!

问题是为什么??????

全部谢谢!

答案 1 :(得分:0)

尝试使用127.0.0.1代替localhost

在mysql中,PDO就是这样,性价比很高......所以只需测试一下。