Tôi có một trang web sử dụng nhiều Ajax. Thỉnh thoảng tôi cần tải các tệp hình ảnh lớn trên trang cho người dùng. Câu hỏi của tôi là, khi các tệp hình ảnh lớn này đang được tải xuống, có cách nào để ngăn chặn chúng nếu người dùng điều hướng khỏi trang hiển thị hình ảnh không? Cảm ơn.Javascript: Hủy/Ngừng yêu cầu hình ảnh
Trả lời
tôi đã có cùng một vấn đề chính xác, khi nhanh chóng thông qua (ajax) kết quả tìm kiếm 'paged' người sử dụng trình duyệt vẫn cố gắng để tải về hình ảnh hồ sơ cá nhân cho mỗi trang không chỉ là một hiện tại. Mã này đã hoạt động cho tôi, được gọi trên sự kiện nhắn tin ngay trước khi tìm kiếm mới được chạy:
//cancel image downloads
if(window.stop !== undefined)
{
window.stop();
}
else if(document.execCommand !== undefined)
{
document.execCommand("Stop", false);
}
Về cơ bản nó giống như nhấp vào nút "Dừng" trên trình duyệt.
Tested trong IE, FireFox, Chrome, Opera và Safari
Thankyou sooooo nhiều MyWhirledView. Tôi đã vật lộn trong nhiều ngày. – Alex
Thật không may điều này không làm việc trong safari: ( – Alex
Điều này * không * làm việc trong Safari ... xem vấn đề tương tự & sửa chữa ở đây: http://stackoverflow.com/questions/3146200/stop-loading-of-images- on-a-hashchange-event-via-javascript-or-jquery –
Giả sử bạn đang sử dụng ajax để tải hình ảnh, bạn có thể chỉ cần hủy yêu cầu trong sự kiện window.onunload. Khai báo một biến toàn cầu cho đối tượng XMLHttpRequest mà bạn đang sử dụng.
var xhr;
//if using the XMLHttpRequest object directly
//you may already be doing something like this
function getImage(...){
xhr = new XMLHttpRequest();
xhr.open(....);
}
nếu sử dụng jQuery, bạn có thể gán giá trị trả lại của cuộc gọi bạn $ .ajax() hoặc biến $ .get to xhr.
xhr = $.ajax(.....);
Xử lý cửa sổ.không tải và hủy yêu cầu.
window.onunload = function(){
xhr.abort();
}
Tôi không sử dụng ajax để tải hình ảnh. Tôi nghĩ rằng thiết lập src = '' sẽ thực hiện thủ thuật nhưng không. Điều tôi thực sự đang tìm kiếm nó là document.getElementById ('image'). StopLoading(); :) – frio80
Giải pháp mans nghèo sẽ chỉ đơn giản là thiết lập các thuộc tính của thẻ hình ảnh SRC để một chuỗi rỗng, hoặc trỏ nó hướng tới một widget.
chỉnh sửa
Saw nhận xét của bạn, ngạc nhiên nó không hoạt động với thay đổi thuộc tính SRC để trống ... hãy thử sử dụng một blank.gif hoặc một cái gì đó.
Nếu cách này không hiệu quả, bạn có thể bị ràng buộc bởi kiến trúc trình duyệt, nghĩa là bạn là S.O.L.
Chuyển nhượng thẻ SRC cho một hình ảnh khác không hoạt động trong IE7, nó tiếp tục cố tải xuống hình ảnh đầu tiên.
Đây là thiết lập:
Tôi đã tạo trình xử lý HTTP thuộc loại JPEG. Nó chứa mã không bao giờ kết thúc thực thi. Vì vậy, someImage.src = myhandler.ashx sẽ vĩnh viễn ngồi đó tải cho đến khi nó lần ra ngoài.
Ở giữa này, nhấn nút khác mà reassigns hình ảnh vào một tập tin hình ảnh nhỏ: someImage.src = small.jpg
Yêu cầu myhandler.ashx không kết thúc, mặc dù chúng tôi đã bố trí src.
Hơn nữa, nếu bạn thực sự xóa someImage.parentNode.removeChild nút (someImage) vẫn tiếp tục cố gắng để tải về myhandler.ashx
Thử nghiệm với IE7 và giám sát với HTTP Xem Pro.
Tôi có một phần của trang của chúng tôi mà tôi muốn tất cả tải hình ảnh để dừng lại. Tôi đã tìm thấy cho IE nếu tôi đi đến nút cha và đặt innerHTML để "", nó hủy bỏ tất cả các yêu cầu khá Điều này chỉ hoạt động cho IE, Safari và Firefox sẽ tiếp tục tải các hình ảnh dường như không có vấn đề gì (lập trình nhấn vào nút dừng là không thích hợp cho tôi vì lý do khác) –
như thế này.
$(img).attr('src','');
- 1. Hình ảnh UIImageNamed yêu cầu pathForResource?
- 2. Yêu cầu POST (Javascript)
- 3. UIImageView + AFNetworking hình ảnh theo yêu cầu hàng đợi yêu cầu mạng khác từ RestKit
- 4. Hình ảnh ràng buộc tải chậm vào hình ảnh mới được chèn sau yêu cầu ajax
- 5. Hoán đổi hình ảnh src với yêu cầu jQuery Ajax
- 6. Yêu cầu HEAD Ajax qua Javascript/jQuery
- 7. Rescue_from cho javascript yêu cầu
- 8. Yêu cầu mô hình và yêu cầu GET?
- 9. Yêu cầu CanvasAnimationTiền dừng khung hình
- 10. javascript: hủy tất cả các loại yêu cầu
- 11. Đặt tiêu đề yêu cầu trong JavaScript
- 12. tải phụ thuộc javascript theo yêu cầu
- 13. Yêu cầu địa chỉ trong JavaScript
- 14. Yêu cầu) chức năng (trong JavaScript
- 15. Tiết kiệm một hình thức hình ảnh theo yêu cầu CLJ-http nộp
- 16. JavaScript: biến toàn cầu sau khi Ajax yêu cầu
- 17. force DOM redraw với javascript theo yêu cầu
- 18. Yêu cầu - Định cấu hình yêu cầu trước khi tải dữ liệu chính
- 19. Cấu hình Bộ nhớ librirypto yêu cầu
- 20. Hiển thị hình ảnh từ một loạt hình ảnh - Javascript
- 21. Hình ảnh trong JavaScript Alert
- 22. Javascript để phóng to và xoay hình ảnh
- 23. Hủy bỏ yêu cầu hình ảnh duy nhất trong các trình duyệt html5
- 24. Apple yêu cầu ảnh chụp màn hình iPad (trong iTunes Connect) trên ứng dụng iPhone?
- 25. Tại sao div bộ chứa này cao hơn yêu cầu để bao bọc hình ảnh chứa?
- 26. tải chuỗi HTML vào jQuery mà không yêu cầu hình ảnh
- 27. Làm hình ảnh w/display: không có yêu cầu HTTP nào?
- 28. Lưu hình ảnh base64 mã hóa với yêu cầu AJAX trong PHP
- 29. Lưu và tải hình ảnh vào IsolatedStorage Yêu cầu lưu hai lần
- 30. Cookie có được gửi cùng với yêu cầu hình ảnh không?
Bạn có nhận thấy rằng trình duyệt * không * hủy tải xuống khi bạn điều hướng khỏi trang? Tôi đồng ý rằng nó nên. Tôi có thể, tuy nhiên, cũng dễ dàng tưởng tượng rằng các trình duyệt khác nhau có thể có hành vi khác nhau. Không may. – Bruce
Vâng, đây là một ứng dụng ajax vì vậy tôi không bao giờ rời khỏi trang tuy nhiên, tôi đã thử 'rời' trang và ngạc nhiên của tôi hình ảnh không ngừng tải xuống. Wow. Không mong đợi điều đó. Tôi đang sử dụng FF 3.0.10/IE8 và Fiddler để xem lưu lượng truy cập. – frio80