Tôi có trình xử lý tệp ashx tạo hình ảnh của mình.Hình ảnh được tạo động được yêu cầu hai lần khi sử dụng tải chậm jquery trong Google Chrome
<img src="www.mywebsite.com/action/getimage.ashx?imageID=f8be4bf6&width=100&height=700&bgcolor=999" />
Tất cả đều hoạt động tốt.
Bây giờ, tôi muốn sử dụng tải chậm. Sử dụng này jquery lazy loading plugin
Vì vậy, tôi điều chỉnh hình ảnh html của tôi như thế này:
<img src="imageplaceholder.gif" original-data="www.mywebsite.com/action/getimage.ashx?imageID=f8be4bf6&width=100&height=700&bgcolor=999" />
Và thêm đoạn mã sau:
$(function() {
$("img").lazyload();
});
tôi nhận thấy trong tab mạng của google công cụ chrome devoloper rằng có hai cuộc gọi đến trình xử lý tệp này.
Tôi đã tạo một fiddle thử nghiệm tại đây: link Nếu bạn cuộn xuống trên fiddle này, bạn sẽ thấy hai yêu cầu hình ảnh khi hình ảnh được tải trong Google Chrome. Trong Firefox và IE, thao tác này chỉ hoạt động với một cuộc gọi.
Có cách nào để tránh hành vi này không?
UPDATE:
Các tiêu đề sau đây được đặt trong file handler:
[0] "Server" "Microsoft-IIS/7.5"
[1] "Set-Cookie" "lang=nl; expires=Tue, 04-Feb-2014 13:08:56 GMT; path=/"
Và Hết hạn tài sản của đối tượng Response là:
context.Response.Expires = 0
thể bạn cũng đăng các nội dung của 'ProcessRequest' của trình xử lý hình ảnh? Lý do là vì hành vi chỉ xảy ra nếu 'data-original' sử dụng trình xử lý hình ảnh (' www.mywebsite.com/action/getimage.ashx? ImageID = f8be4bf6 & width = 100 & height = 700 & bgcolor = 999') nhưng khi hình ảnh tĩnh như 'http: // www.appelsiini.net/attachments/jquery.png' thì chỉ có một cuộc gọi. –
Tôi cũng nhận thấy điều đó. Hình ảnh tĩnh hoạt động tốt. Trình xử lý tệp được sử dụng trong ví dụ fiddle không phải là trình xử lý tệp được sử dụng trong sollution của riêng tôi. Tôi đã thử các trình xử lý tệp khác nhau mà tôi tìm thấy trên web để xem sự cố không phải là mã của tôi hay không. Cho đến nay, tất cả họ đều có cùng một vấn đề. Vì vậy, tôi không nghĩ rằng vấn đề sẽ được với bộ xử lý hình ảnh chính nó. – ThdK