フォームを表示する以下のコードがあります。アップローダーの div セクションには gif 画像が表示され、ファイルがサーバーによって処理されていることをユーザーに伝えます。ファイルが処理されると、div 'outdata' は ajax 呼び出しからの出力を保持します。私のファイルには多くの情報が含まれているため、サーバーでの処理に時間がかかります。最後のファイルに約 12.11 分かかったとしましょう。
私の質問は、小さなファイルをアップロードすると、完全に正常に動作することです。応答は outdata div セクションに表示されます。ただし、ファイルサイズが大きい場合、サーバーがファイルを出力するように見えますが、それは私に電子メールで送信されるためですが、ブラウザのページには同じことが反映されません。ファイルがまだ処理中であり、画像が画面に表示されたままになっていることを示しています。
1)。ajax が応答テキストを送り返すのをブラウザーが待機する時間 2)。これを行うより良い方法はありますか?
echo "<form name=\"cre\" id=\"cre\" action=\"#\" method=\"post\" enctype=\"multipart/form-data\">";
echo "<label for=\"file\">Filename: </label>";
echo "<input type=\"file\" name=\"file\" id=\"file\" ><br><br>";
echo "<label for=\"email\">Email: </label>";
echo "<input id=\"email\" type=\"text\" name=\"email\" maxlength=\"40\"><br><br>";
echo "<input type=\"submit\" onclick=\"return validate();\" id=\"submit\" value=\"Submit\"> ";
echo "</form>";
echo "<BR>";
echo "<div id=\"uploader\"></div>";
echo "<BR>";
echo "<div id=\"outdata\">";
echo "</div>";
これはajax呼び出しです
function validate()
{
var file = $("#file").val();
if(!file || file == '' || file == null)
{
document.getElementById("outdata").innerHTML="Please select a file";
return false;
}
var options = {
target: '#outdata',
url:'process.php',
data:{
accesstype:"cre"
},
beforeSubmit: function() {
$('#uploader').html('<img src="/images/ajax-loader.gif" />');
$('input[type=submit]').attr('disabled', true);
},
success: function() {
$('#uploader').html('');
$('input[type=submit]').attr('disabled', false);
}
};
$('#cre').ajaxSubmit(options);
return false;
}