我最近使用ajax调用更新了我的网站,以改善最终用户体验。一些调用被设置为反复轮询数据库,其他调用被调用以在用户交互时改变数据库,即。完成任务或取消购物车项目。
现在我因服务器打开文件限制而收到服务器错误。
以下是我正在使用的代码类型的一个示例:(信用转到谷歌上发现的每个教程......)
function checkForNewData() {
$.get('checkForNewData.php',false,function(data){
if(data.length){
$('#newData').html(data);
}
});
}
$(function(){
checkForNewData();
setInterval('checkForNewData()',10000);
});
我意识到通过使用“setInterval('checkForNewData()',10000);”这意味着对于打开此页面的每个用户,每10000毫秒加载一次文件。
以下是关于我对ajax无知的问题:
感谢您的时间和助手。
答案 0 :(得分:0)
unix服务器是否将每个ajax调用(此庄园)记录为页面加载或打开文件?
每次运行php文件时都会记录。执行任何方式的PHP记录。这就是为什么如果在AJAX调用期间出现任何问题,您可以在错误日志中看到错误。
如果页面在幕后加载,我是否必须将其关闭?
哪个页面? “checkForNewData.php”?不,你没有。 AJAX调用等待脚本执行&完成而不是获得响应。
是否有更好的方法让网站保持最新状态,而不是重复轮询我的数据库?
是的,有。我会:
在服务器上
在客户端
使用AJAX标头或AJAX后期数据来请求特定功能(比如要求时间戳更新与获取HTML数据)。
请记住为json_encode使用正确的标志。
print_r(json_encode($html,JSON_HEX_QUOT|JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_APOS));
还要记住压缩数据。
ob_start('ob_gzhandler');
最佳做法是尽量减少数据库调用。