2015-08-26 5 views
9

Für diejenigen von uns, die Contentwebsites betreiben und sich mit Werbenetzwerken befassen, kann die Bekämpfung böswilliger oder fehlerhafter Rogue-Anzeigen frustrierend sein.Wie erkennen Sie, ob die Seite aufgrund von Javascripts von Drittanbietern langsam ist?

Ich besitze eine Website, die viele Youtube & Dailymotion Videos einbettet. Ab und zu wird eine schlechte Anzeige erscheinen und die Videowiedergabe stottern. Ich habe mich im Einzelfall immer mit diesen befasst. Aber gibt es eine Möglichkeit zu erkennen (mit Javascript), ob die Seite langsam ist oder nicht?

In meinem Kopf ist eine sehr grobe Möglichkeit, einen setInterval bei 100ms laufen zu lassen. Und wenn es eine große Verzögerung in einem Intervall entdeckt, handeln Sie entsprechend.

Gibt es andere elegantere Ansätze?

+0

Ich habe gerade heute in einem Podcast namens Techsnap gehört, dass ein Angestellter einer Werbefirma sagte, dass sie die Seitenbelastung absichtlich verlangsamen, um eine längere Anzeigezeit zu bekommen ... mehr Geld zu verdienen. Also ja, Werbung, besonders Flash, deshalb habe ich komplett deaktiviert Flash und alles läuft gut. – ppumkin

+0

@ppumkin Wow, das ist einer der vielen Gründe, warum ich denke, dass es eine Revolution in der Web Ads Landschaft geben muss. Zu viele verwertbare Gebiete. Vor kurzem musste ich mich mit einer seltsamen Schurken-Anzeige befassen, die das Blättern von Seiten und Rechtsklicken deaktiviert ... – Dave

+0

Ja ... Flash ist die Hauptquelle von 0day Exploits oder Exploits in nicht gepatchten Browsern ... Das Problem ist, dass es keinen Ersatz gibt für Flash leider :(Und Adobe bringt Patches zu erschreckend niedrigen Raten und bedrohte White-Hat-Forscher mit rechtlichen Schritten für Reverse-Engineering und bietet Patches für Adobe kostenlos. Das ist ein Plus auf Apple, lösten sie die Probleme und ... aber das Minus ist, dass sie nicht teilen wollen. Google und Firefox sind die einzigen aktiven Leute, die Alternativen zu Flash entwickeln ... aber es dauert ewig und ist sehr buggy. – ppumkin

Antwort

1

Erste Annäherung, wenn Ihre Langsamkeit geladen ist, erstellen Sie Platzhalter für die Anzeigen und laden Sie sie zuletzt nach allem anderen.

Zweiter Ansatz, erstellen Sie einen Javascript-Timer oder eine Timer-Bibliothek, um die Ladezeit der Seite zu messen. Wenn der zulässige Schwellenwert überschritten wird, killen Sie die Anzeige mit JavaScript oder protokollieren Sie die Langsamkeit bei einem Webdienst. Wenn der Timer die Langsamkeit nicht aufnimmt, weil er inkrementell ist, dann verwende eine setTimeout-Funktion, die einen Zeitstempel aufzeichnet und alle 200ms aufruft und vergleicht den neuen Zeitstempel jedes Aufrufs mit dem älteren Zeitstempel des vorherigen Aufrufs.

Wenn ein setTimeout-Aufruf, der auf 200ms festgelegt wird, 500ms dauert, um schließlich ausgeführt zu werden, haben Sie erhebliche Verzögerungen und sollten die Anzeige mit Javascript beenden oder die Langsamkeit bei einem Webdienst protokollieren.

Jede dieser Methoden muss auf Ihre tatsächliche Website abgestimmt werden.

+0

Wenn die Anzeige vom Blitz geladen wird, entdeckt Javascript die "Langsamkeit" nicht, weil die Javascriptmaschine noch ohne Verzögerung läuft ... sein anderer Mist, den sie in den Blitz setzen, der verlangsamt Herunterfahren der Benutzeroberfläche in einen anderen Prozess, der für JavaScript nicht zugänglich ist. Flash muss bald sterben, sehr bald – ppumkin

+0

Die Flash-Anzeige möglicherweise nicht überwältigenden Einfluss auf die Javascript-Engine, aber wenn die Anzeige verursacht den Rest der Webseite zu tuckeln aufgrund eines vollständigen Browser verlangsamen Javascript-Timer wird es zeigen. –

+0

Ich würde es wirklich lieben, das zu testen ... weil aus meiner Erfahrung OS Lag im Allgemeinen nicht Auswirkungen auf Browser-Prozesse (in Speicherraum-Prozesse) ... weil sie unterschiedlich priorisiert sind.Chrome hat jedoch einige nette Leistungstest-Tools. – ppumkin

Verwandte Themen