私たちの Web サイトで最も奇妙な動作が発生しており、動作が非常に遅くなっています。
私のチームと私は、完全に AJAX で実行されている Web サイトを持っています。したがって、ログインのために、ログイン ボックスをインデックス ページにロードする js ajax がいくつかあります。ログイン ボックスを含む html には、head にスクリプト リンクがあります。このスクリプトは、ログイン フォームの送信をリッスンし、ajax を介して認証のためにフォーム データをサーバーに送信します。
ログイン ボックスを含む html は 1 回だけ読み込まれますが、リンク先の js ファイルは複数回読み込まれます。回数が変わります。5回から15回で模様も何も見えない。これは、ログイン時だけでなく、サイトのあらゆる場所で発生します。
この問題は本当に私を困惑させ、私は完全に立ち往生しています。最初にajaxでロードされたjsファイルにajaxがあるからですか?
あなたの洞察と助けに本当に感謝します!
編集:
要求に応じて、いくつかのコード:
これは、Interface.js ファイルの loadContent() の機能を取り除いたバージョンです。この特定の関数は、すべてのサイト コンテンツを index.php のコンテンツ領域にロードします。ページが更新されると、関数に最初に送信されるのは、ログイン ボックスを含む login.php ファイルの場所です。
loadContent: function(page) {
var self = this;
//just some animations to make things look good
$(self.error).fadeOut(150, function() {
$(self.content).fadeOut(150, function() {
$(self.loading).fadeIn(150, function() {
$.ajax({
url: page,
success: function(data) {
//response data
var $response = $(data);
$(self.content_1).html($response);
//definitions for contentbox-2
self.contentHeading_2.html("Replies:");
self.content_2.html(postReplies);
//redisplay the content after it has loaded in.
$(self.loading).fadeOut(150, function() {
$(self.content).fadeIn(150, function() {
// Content faded in
});
});
},
error: function() {
$(self.loading).fadeOut(150, function() {
$(self.error).fadeIn(150, function() {
// Error faded in
});
});
}
});
});
});
});
this.page = page;
}
そして login.php ファイル:
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<script type="text/javascript" src="js/login.js"></script>
</head>
<body>
<div class="padded loginphp">
<div id="loginbox">
<!-- the login box comes here
</div> <!-- #loginbox -->
</div>
</body>
</html>
そして login.js ファイル:
$(document).ready(function() {
$('#honeyloginform').submit(function(event) {
//event.preventDefault();
login();
return false;
});
});
function login() {
$('.errorinputfields').removeClass('errorinputfields');
if (isEmpty($('#username'))) {
$('#username').addClass('errorinputfields');
$('#username').focus();
return;
}
if (isEmpty($('#password'))) {
$('#password').addClass('errorinputfields');
$('#password').focus();
return;
}
$('#honeyloginform').fadeOut(100, function(){
$('#loginbox .loading').fadeIn(300, function(){
var pword = $('#password').val();
var remember = "no";
if ($('#remember').is(':checked')) {
remember = "yes";
}
var JSONobj = {
username: $('#username').val(),
password: pword,
rem: remember
};
$.ajax({
url: 'ajax/login.php',
data: JSONobj,
success: function(data) {
//alert(data);
var JSONobj = JSON.parse(data);
if (JSONobj.Success) {
Interface.login(); //just loads the landing page after login
//window.setTimeout('location.reload()', 300);
} else {
$('#loginbox .loading').fadeOut(300,function(){
$('#honeyloginform').fadeIn(300);
});
$('#username').focus();
$('#loading-message').text(JSONobj.Message).show();
}
}
});
});
});
}