jQuery checken beim Userbrowser?

  • Ist es technisch eigentlich machbar, das ich nachsehe, welche jQuery-Version der User in seinem Browsercache hat?

    Ich habe Sites, die verwenden jQuery. Tun heutzutage sowieso die meisten Sites. Alle WPs pullen sich jQuery direkt von google.
    Diese jQuery-Bibliotheken sind ja ziemlich groß; auch die Chance, das der Userbrowser genau diese Version schon im Cache hat, ist hoch.
    Nun habe ich aber einen Shop, der verwendet 3 unterschiedliche Versionen von jQuery. (Danke nochmal an die Pluginfrickler-Vollpfosten von osC).
    Kann ich nun irgendwie gucken, ob und welche Versionen von jQuery der Userbrowser schon hat?

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • Nein, nicht wirklich. Eigentlich ist das aber doch auch egal, oder? Google liefert die auch per Expires von einem Jahr aus. Wenn der User sie hat, dann fertig, wenn nicht, dann wird sie geladen.

    Wozu willst Du das vorab wissen?

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Weil ich die nicht von google pullen will, sondern selbst auf dem Server auf einer Subdomain haben will. Ebenso die Fonts.
    Das Ding mit jQuery ist halt, das die Seite das zum Seitenaufbau benötigt. Ich kann es also nicht asyncron laden, wenn es nicht da ist.

    Wenn es irgendwie ginge, das ich ne Userbrowser abfrage ala
    Wenn jQuery da ist
    rendere die Seite
    dann frickle jQuery rein und schubste die Seitenelemente an den richtigen Platz

    So würde sich die Seite wesentlich schneller aufbauen.

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • Nee, das geht nicht. Selbst wenn würdest Du da nichts gewinnen, im Gegenteil. Hier ist je der zeitliche Ablauf falsch.

    1. Browser sendet Anfrage
    2. Server antwortet mit HTML
    3. Browser parst und lädt gegebenenfalls jQuery nach

    Hier ist kein Ansatzpunkt. Der Browser müsste ja quasi schon rein aus Verdacht beim ersten Zugriff seine Cache-Daten senden, denn es könnte ja sein, dass der Server das möchte. Nee, das geht nicht. Es müsste aber der erste Zugriff sein, denn nur so hätte Dein Server bei Punkt 2 die Chance mit einer entsprechenden, vorliegenden Version zu antworten.

    Wenn Du die nicht von Google ziehen willst, dann lege die auf den eigenen Server und fertig. Hier ist halt nur der Unterschied, dass sehr viele Browser die Google-Version schon im Cache haben werden, Deine aber nicht, auch wenn das die gleiche Versionsnummer ist. Gleiches Script ist für den Browser ja eben nicht gleiches Script, die Herkunft muss auch identisch sein.

    Sprich, bei dem was Du Dir da denkst müsste die Frage an den Browser ja nicht lauten "hast Du EIGENDEINE jQuery bereits im Cache", sondern "hast du MEINE im Cache". Und genau das fragst Du ja indirekt an, indem Du Deine einfach pauschal einbindest.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Menno. Das ist Dumme.
    Wenn ich z.B. so ne elend große jQuery (über 500KB) bei mir liegen habe, dann bringt das also sowieso nix, wenn der Userbrowser zwar genau diesselbe Version hat, aber halt die von google ist? *hmpf
    Wer denkt sich denn so nen Scheiss aus?

    Toll. Und wenn ich die von google hole (und der User hat die nicht), dann darf ich hoffen, das google schnell antwortet.

    Und wie ist das mit Fonts?
    Weil bei Fonts direkt von google gibts auch immer ne satte Verzögerung.

    Wer zuerst "Datenschutz" sagt, hat verloren.

  • Richtig, so ist das. Unterschiedliche URL, gleiche Datei, aber dennoch unterschiedlicher Hash. Der wird ja gebildet aus Domain, Dateipfad, Dateiname, Größe, Datum etc. Dazu kommen dann noch die Dinge wie Etag, Expires ect. Die sind im Cache ja auch zur Herkunft hinterlegt. Wäre ja fatal, wenn der Browser da Werte einer fremden bzw. anderen Seite nehmen würde.

    Selbst bei Dir auf Deinen Seiten. Geht einer auf seiden-handel und dann auf seidenhandel, dann lädt der da zwei mal die jQuery (falls beide noch nicht im Cache waren), auch wenn es die selbe Datei ist. Oder auch bei Deinem jetzigen Umbau. Einmal von http://www.seiden-handel und einmal von script.seiten-handel, das sind wieder zwei verschiedene.

    Der, der sich das ausgedacht hat, hat sich schon war dabei gedacht. Das muss so sein. Der Browser kann ja nicht wissen, ob die in der Datei nicht irgendwelche Modifikationen vorgenommen hast.

    Bei den Fonts ist es das gleiche. Ist ja auch nur eine Datei. Egal was, das zählt für alles.

    Bei Dir im Verbund lässt sich das also nur verbessern, wenn Du die Files alle auf die gleiche URL legst, z.B. script.seiden-handel und diese jQuery dann auf allen Seiten von Dir verwendest. Dann reicht ein Download, wenn man sich auf Deinen Domänen bewegt. Hat aber den Nachteil, dass wenn die Quellurl mal offline ist, dass das Script dann auf allen Domänen fehlt.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(