2009-10-02 38 views

Trả lời

8

Bạn có sử dụng jQuery không?

Nếu vậy bạn có thể sử dụng:

ajaxStart & ajaxStop: http://docs.jquery.com/Ajax

Ví dụ:

$(function(){ 

    // hide it first 
    $("#spinner").hide(); 

    // when an ajax request starts, show spinner 
    $.ajaxStart(function(){ 
     $("#spinner").show(); 
    }); 

    // when an ajax request complets, hide spinner  
    $.ajaxStop(function(){ 
     $("#spinner").hide(); 
    }); 
}); 

Bạn có thể tinh chỉnh một chút với một yêu cầu truy cập mà increments và suất này trong trường hợp bạn có nhiều yêu cầu đồng thời.

Nếu bạn không sử dụng jQuery, hãy kiểm tra mã nguồn jQuery mà sự kiện ajaxStart thực sự đăng ký bằng javascript cũ đơn giản.

HTH Alex

+0

Tôi đang sử dụng mẫu thử nghiệm. – brainfck

+0

Ok không hoàn toàn dễ dàng, nhưng kiểm tra trang này http://www.prototypejs.org/api/ajax/request và các sự kiện: - onCreate - onComplete –

+2

Cảm ơn, tôi đã thay đổi thành jQuery. Nguyên mẫu hút :) – brainfck

1
$().ajaxSend(function(r, s) { 
    $("#spinner").show(); 
}); 

$().ajaxStop(function(r, s) { 
    $("#spinner").fadeOut("fast"); 
}); 
2

tôi đã sử dụng này trong ứng dụng ray của tôi. Điều này làm việc cho tôi:

$(document).ajaxSend(function(r, s) { 
$("#spinner").show();}); 


$(document).ajaxStop(function(r, s) { 
$("#spinner").fadeOut("fast");}); 
+0

Tôi cũng phải sử dụng $ (tài liệu), giá trị rỗng ($) hoặc $ mà không có dấu ngoặc đơn không hoạt động. – Blizwire

Các vấn đề liên quan