2012-05-01 36 views
7

Tôi có một số pixel theo dõi trên trang web của mình, rằng tôi muốn bảo vệ chống lại chúng ảnh hưởng đến trải nghiệm người dùng của chúng tôi nếu máy chủ của chúng bị hỏng hoặc chậm. Cách dễ nhất để chỉ định thời gian tối đa mà trình duyệt sẽ cố gắng tải một img - tức là thử 100ms và sau đó bỏ? (Tôi không muốn theo dõi một khách hàng nhất định hơn là có một máy chủ treo trên máy chủ của bên thứ ba tác động đến trang web của chúng tôi).<img src> w/timeout?

Trả lời

2

bạn nên tải chúng khi tài liệu sẵn sàng. hoặc ở dòng cuối cùng (trong html). theo cách này, nó sẽ không làm tổn hại đến trải nghiệm người dùng. tài liệu sẵn sàng cũng có thể được sử dụng với jQuery.

nhưng bạn có thể sử dụng window.load.

làm quy tắc (không phải lúc nào) - tất cả tập lệnh phải ở cuối trang.

nếu bạn muốn để buộc thời gian ra KILL:

tạo ra một thẻ img.

đính kèm sự kiện load đến img (chức năng này sẽ thiết lập cờ: download = 1;)

thiết lập src.

với setTimeout Chức năng bạn sẽ giết img.

làm cách nào?

nếu sau X MS tải xuống == 0 thì hãy giết.

vì vậy: mỗi sự kiện tải (từ IMg) đang đặt cờ (được tải xuống = 1).

chức năng hết thời gian chờ của bạn không quan tâm gì cả !!! sau khi x MS cô sẽ giết img - chỉ khi tải về == 0.

+0

Vâng, nhưng sau đó thanh trạng thái vẫn hiển thị dữ liệu đang được tải xuống, vì vậy có vẻ như chưa hoàn tất. Tôi thực sự muốn có một cách thực tế để xác định thời gian chờ. –

+0

@MichaelReston xem chỉnh sửa của tôi. –

+1

Tại sao phải bận tâm với điều kiện thay vì xóa ' '? – Electro

-1

Bạn có thể gọi quy trình máy chủ trong thẻ IMG. Hãy để nó lo lắng về thời gian ra tải.

+0

Đã có quy trình máy chủ trong thẻ: nó cung cấp "hình ảnh". Đó là thời gian để dành thời gian và điều đó cần phải được hủy bỏ trong ứng dụng khách. Nếu hủy bỏ được giao cho máy chủ, việc hủy bỏ sẽ mất thời gian quá. –

+0

Vì vậy, chuỗi nó và xem đồng hồ. – ethrbunny

3

Bạn có thể chèn <img> bằng JavaScript và sử dụng setTimeout() để xóa sau 100ms.

Ví dụ với jQuery:

var tracker = $("<img>", { src: trackingUrl }).appendTo(document.body); 
setTimeout(function() { tracker.remove(); }, 100); 
0

Bạn sẽ phải sử dụng javascript để làm điều này, không có gì mẹ đẻ sang HTML/HTTP rằng sẽ làm điều này trên cơ sở trang. Google xung quanh cho "HTML IMG timeout".

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