在这里有一个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分析器显示了这一点 - 一个愚蠢的,无法解释的空闲:
关于&#34; b.event.remove()&#34;的任何其他见解jquery功能需要6秒以上?这似乎是个问题?
答案 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就是这样,性价比很高......所以只需测试一下。