我有一個表單提交給一個需要很長時間才能執行的腳本(〜30-60秒,給予或帶走)。我想要一個微調器,顯示用戶等待時正在處理的結果。通常情況下,我會將Spinner粘貼到處理腳本中並完成處理,但我無法訪問該腳本。有沒有辦法使用js/jQuery提交AJAX請求,然後在完成處理時加載目標頁面?像這樣的東西是我想要的:用AJAX結果代替文檔
<script type="text/javascript">
$(function() {
$("#myForm").submit(function() {
var data = $(this).serialize();
$.post("url/to/script.php", data, function (results) {
// replace this entire document, url included, with the results
});
$("#spinner").hide().ajaxStart(function() {
$(this).show();
}).ajaxStop(function() {
$(this).hide();
});
});
});
</script>
我對其他想法也很開放。
[編輯]
(希望)澄清:我想要的結果在後臺加載,只有當他們完成導航到他們。行爲(除了微調器)應該與最終用戶沒有區別,而不是在不使用JavaScript的情況下提交表單。
[編輯2]
我設法說服目標腳本的所有者把一個微調到位,所以現在的問題是學術。
「url included」是什麼意思?什麼返回ajax?爲替換整個documento,執行'$(「body」)。html(results);' – jotapdiez 2011-04-27 15:06:12
我試過了,得到一個空白屏幕。我懷疑它與結果中的
有關。我嘗試將結果解析爲頭部和正文,然後通過jQuery將它們分配,並得到相同的淨結果(空白屏幕)。 – asgallant 2011-04-27 16:56:55什麼返回ajax? – jotapdiez 2011-04-27 18:53:09