Es klingt, als würden Sie dies als Reaktion auf die Bilder in Sicht kommen? Anstatt alle 500ms alle Bilder auf der Seite abzufragen, um zu sehen, ob sie in Sicht sind, wäre es vielleicht besser, die Prüfung nur auszulösen, wenn die Seite gescrollt hat (oder was auch immer bewirkt, dass Bilder gescrollt werden nicht häufiger zu sein, sobald als alle 500 ms, aber es hat den Vorteil:
- Nicht ein 500ms Intervall Schleife die ganze Zeit
- Nicht die Bilder im Hinblick auf die Überprüfung ausgeführt wird, die unnötig
I Ich gehe davon aus, dass die Bilder beim Scrollen des Benutzers ein- und ausgehen, also was Sie tun möchten in diesem Fall ist wie folgt:
- Bind ein Ereignis
$(window).scroll
- es Haben Sie eine Veranstaltung nach einer festgelegten Zeit mit
setTimeout
(500ms in Ihrem Fall) feuern.
- dass Timer abbrechen, wenn der Benutzer blättert wieder und starten Sie ihn (es mehrmals Brennen zu verhindern.
- für die Veranstaltung Brennen Hören und Ihre Bildprüfeinheit dort ausführen.
Hier ist ein Beispiel dafür, wie könnte der Code aussehen:
var scrollIntervalTimeout;
$(window).on('scroll', function() {
// Cancel the timeout and start it again
clearTimeout(scrollIntervalTimeout);
scrollIntervalTimeout = setTimeout(function() {
$(window).trigger('scrollDidEnd');
}, 500); // 500ms delay before firing the event
});
// Listen for the scrollDidEnd event
$(window).on('scrollDidEnd', function() {
// Perform your image check here
});
Also im Grunde senden Sie Anfrage an 'server' jedes _500ms_ reelles Bild zu laden .. ich finde, dass das eine schwere Last zu' server' sein wird, wenn Sie jeden _500ms_ senden Anfrage Besser. Zeit erhöhen. –
Meine Hauptfrage ist warum? Was lässt Sie glauben, dass es das Bild ein zweites Mal laden kann, wenn es das erste Mal nicht funktioniert? – Liam
Nein ich dont @Guruprasad Rao.It nur Anfrage für Bilder, die nicht lädt einmal, wenn Fehler beim Laden passiert es wird versuchen, wenn Sie es wieder auf Ihrem Bildschirm sehen, müssen Sie nur nach unten und oben scrollen und wieder sehen und Anfrage wird senden wieder –