Javascript jQuery在ajax进行时检测页面刷新并停止重新加载
我有一个脚本ajax,它每32秒启动一次,发送一个ajax请求:Javascript jQuery在ajax进行时检测页面刷新并停止重新加载,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个脚本ajax,它每32秒启动一次,发送一个ajax请求: setInterval(function() { var dt = new Date(); var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds(); console.time("debut ajax"); $.getJSON('http://127.0.0.1:<?php echo $_SERVER['S
setInterval(function() {
var dt = new Date();
var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds();
console.time("debut ajax");
$.getJSON('http://127.0.0.1:<?php echo $_SERVER['SERVER_PORT']; ?>/order/get_orders', function(data) {
//console.log(data);
if(jQuery.type(data) === "array") {
var id = data[0].id; var starter = data[0].starter; var meal = data[0].meal; var dessert = data[0].dessert; var expenses = data[0].expenses;
var iduser = data[0].log_by; var date = data[0].date;
var server= "<?php echo $this->config->item('server_url'); ?>index.php/account/updateExternal?";
$.ajax({
url: server+"&callback=?",
data: "balance="+expenses+"&starter="+starter+"&meal="+meal+"&dessert="+dessert+"&date="+date+"&id_user="+iduser+"&place=client2",
type: 'POST',
success: function (resp) {
var myObj = $.parseJSON(resp);
$.getJSON("http://127.0.0.1:<?php echo $_SERVER['SERVER_PORT']; ?>/order/update_log?id="+id+"&balance="+myObj.expenses+"&starter="+myObj.starter+"&meal="+myObj.meal+"&dessert="+myObj.dessert+"&id_user="+myObj.id_user, function(data) {
});
},
error: function(e) {
//alert('Error: '+e);
}
});
}
});
console.timeEnd("fin ajax");
}, 32 * 1000);
setInterval(函数(){
var dt=新日期();
var time=dt.getHours()+“:”+dt.getMinutes()+“:”+dt.getSeconds();
控制台时间(“首次ajax”);
$.getJSON('http://127.0.0.1:/order/get_orders,函数(数据){
//控制台日志(数据);
if(jQuery.type(数据)=“数组”){
var id=数据[0]。id;var starter=数据[0]。starter;var MEAT=数据[0]。MEIN;var SARTIST=数据[0]。甜点;var费用=数据[0]。费用;
var iduser=data[0]。日志记录人;var date=data[0]。日期;
var server=“index.php/account/updateExternal?”;
$.ajax({
url:server+“&回调=?”,
数据:“balance=“+expenses+”&starter=“+starter+”&dine=“+fine+”&sarts=“+sarts+”&date=“+date+”&id_user=“+iduser+”&place=client2”,
键入:“POST”,
成功:功能(resp){
var myObj=$.parseJSON(resp);
$.getJSON(“http://127.0.0.1:/order/update_log?id=“+id+”&balance=“+myObj.expenses+”&starter=“+myObj.starter+”&fine=“+myObj.fine+”&sarts=“+myObj.sarts+”&id_user=“+myObj.id_用户,函数(数据){
});
},
错误:函数(e){
//警报('错误:'+e);
}
});
}
});
console.timeEnd(“fin ajax”);
}, 32 * 1000);
在这个ajax请求期间,我需要防止或停止刷新页面。怎么做
// Reload the page if the input is onfocusout for some reasons
$(document).ready(function(){
$(function(){
$("#barcode").focus();
$('#mtsg').html('Staff Canteen Software<br />Veuillez placer votre badge pour identification');
});
$( "#barcode" ).focusout(function() {
$(location).attr('href', "http://127.0.0.1:<?php echo $_SERVER['SERVER_PORT']; ?>/");
});
});
///
//如果由于某些原因输入为onfocusout,请重新加载页面
$(文档).ready(函数(){
$(函数(){
$(“#条形码”).focus();
$(“#mtsg').html(“员工食堂软件
Veuillez placer votre徽章浇注标识”);
});
$(“#条形码”).focusout(函数(){
$(位置).attr('href',”http://127.0.0.1:/");
});
});
///
浏览器窗口是我的,我控制它,我会在需要时刷新它。您可能可以使用onBeforeUnload
事件来阻止刷新,但我和其他许多潜在用户将离开网站,永远不会回来。您可以使用窗口。onBeforeUnload
开关提示用户重新加载或否,没有其他方法。您无法阻止访问者刷新,离开或关闭您的网站。这将被视为浏览器劫持。即使是onBeforeUnload
,由于过去大量滥用此功能,它的使用也受到了一些严重限制。我要做的是创建一个自定义事件,该事件触发onBeforeUnload
,提示访问者是否确定要刷新/离开/关闭ajax请求。然后在触发ajax请求时启用此事件,并在成功时再次禁用它