我正在用php和js开发一个应用程序。 我有一个带有一些项目的菜单边栏,当我点击一个项目时,使用jQuery加载功能,相应的php文件被加载到主容器上。 但是当我加载一个特定的php文件时,我有一个非常重要的问题。
这个想法是页面没有重新加载,所以我使用jQuery加载函数。 问题是这样的:我收取一个在某个点调用几个js函数的视图,然后我转到应用程序的另一部分,当我特别返回到该视图时,对此函数的调用会在更多时间内完成,如果我一次又一次地出去看,这个电话是3次,依此类推。
它使应用程序在一定时间内非常低,因为以增量方式调用的函数是具有ajax调用的js函数。
这是js文件的一部分
$(document).ready(function(){
ObtenerNumPaciente();
actualizarMedicos();
actualizarMutuales();
resetFormMedico();
resetPracticas();
actualizarNomencladores();
$('#nombre').focus();
});
$(document).keydown(function(key){
if (key.which === 113)
{
key.preventDefault();
actualizarPacientes('key down'); //this is the function that is call several times
$('#modal-pacientes').modal('show');
}
});
function actualizarPacientes(origin){
alert('this came from: ' + origin);
$.ajax({
type: 'GET',
contentType: 'application/json',
url: 'api/pacientes',
dataType: 'json',
beforeSend: function(xhr){
xhr.setRequestHeader("Authorization", $.cookie('ApiKey'));
},
...
有人可以帮我解决这个问题吗?
感谢。
答案 0 :(得分:0)
尝试在keydown本身之前添加var sum=0;
for( var i=0; i<data.length; i++ )
sum += data[i];
return (sum & 0xFF);
。
unbind()
基本上,您将事件$(document).unbind('keydown').keydown(function(key){
两次附加到文档元素。 Unbind只是“分离”事件监听器,确保函数内的代码触发一次。
因此,如果该元素具有 keydown 的事件侦听器,则它将取消绑定旧的并附加新的。