Automatischer Bild-Resize defekt?

  • Mal 'ne doofe Frage: Kanns sein, dass das automatische resizen von Bildern (bspw. im Random-Bilder-Thread) nach dem kompletten Laden der Seite aktuell nicht funktioniert? Geht bei mir hier irgendwie nicht, die Bilder bleiben nach dem Ladeabschluss auf voller Größe bei mir dargestellt (sowohl unter Firefox 112.0.2 unter Windows als auch unter Firefox 112.0.2 und Chromium 112.0.5615.165 unter Arch Linux).

    «Ich verstehe Ihre Frage so: Dass es Menschen gibt, die wünschen, dass ein solches OS als "Retro-OS" bezeichnet wird, ja? Mir ist nicht bekannt, dass solche Absichten bestehen, da HP-UX 9.x einfach ein altes OS ist. Niemand hat die Absicht, ein "Retro-OS" zu bauen.» Xaar, 2014

    Prozessor gesucht? -> Prozessoren, die ich abgeben kann (unter "Available for trading")
    "Überschüssige" Prozessoren oder Hardware? -> Einfach PN an mich schicken :b1: -> Hardware, die ich suche

  • Wenn eine hohe Threads pro Seite Darstellung eingestellt ist, dann werden die Bilder erst klein angezeigt nachdem das letzte Bild komplett geladen ist.

    Das kann bei vielen oder besonders großen Bildern doch eine Weile dauern...

    tYLfrPk.png
    Desktop 1: Selbstbau 2022 - Intel Core i9-12900K - AMD Radeon RX 7900 XTX - 64GB RAM - 4TB SSD - Arch Linux
    Desktop 2: Apple Mac Pro Early 2009 - 2x Intel Xeon X5690 - AMD Radeon RX 560 - 64GB RAM - 2TB SSD - macOS 15 Sequoia
    Notebook 1: Lenovo ThinkPad X13 G4 - AMD Ryzen 7 7840U - AMD Radeon 780M - 32GB RAM - 2TB SSD - Arch Linux
    Notebook 2: Apple MacBook Air Late 2020 - M1 Prozessor - 16GB RAM - 512GB SSD - macOS 15 Sequoia
    Homeserver: Intel Core i7-7700K - 64GB RAM - 10TB SSD, 80TB HDD - Arch Linux

    Meine IBM/Lenovo ThinkPads:

    Spoiler anzeigen

    Lenovo X13 G4 Yoga - i7-1345U - 16GB RAM - 256GB SSD - LTE - Windows 11 Enterprise
    Lenovo X390 Yoga - i7-8565U - 16GB RAM - 256GB SSD - LTE - Windows 10 Enterprise
    Lenovo Thinkpad T470 - i5-7300U - 32GB RAM - 2TB SSD - Arch Linux
    Lenovo X230 - i5-3320M - 16GB RAM - 128GB SSD - UMTS - Arch Linux
    Lenovo T400 - P8600 - 4GB RAM - 320GB SSD - UMTS - Windows 7
    Lenovo X200s - SL9600 - 8GB RAM - 128GB SSD - UMTS - Windows 7
    IBM T43 - Pentium M 2,26 GHz - 2GB RAM - 80GB HDD - Windows XP
    IBM T23 - Pentium iii 1 GHz - 256MB RAM - 10GB HDD - Windows 2000
    IBM 380XD - Pentium MMX 233 MHz - 96MB RAM - 3GB HDD - Windows 98SE
    IBM 760EL - Pentium 120 MHz - 32MB RAM - 2GB HDD - Windows 95C
    IBM 701CS - 486er - XXMB RAM - XXXXMB HDD - Windows 95

  • Das ist mir bekannt, dass das erst passiert, wenn alle Bilder geladen sind. Bei mir waren (augenscheinlich) alle Bilder geladen, aber die Bilder wurden dennoch nicht verkleinert.

    Komischerweise geht's jetzt wieder :b5:

    Vllt. war auch gerade ein Server nicht erreichbar - und das Bild wurde deswegen nicht geladen (und angezeigt), aber der Ladeprozess war für's Script nicht abgeschlossen.

    «Ich verstehe Ihre Frage so: Dass es Menschen gibt, die wünschen, dass ein solches OS als "Retro-OS" bezeichnet wird, ja? Mir ist nicht bekannt, dass solche Absichten bestehen, da HP-UX 9.x einfach ein altes OS ist. Niemand hat die Absicht, ein "Retro-OS" zu bauen.» Xaar, 2014

    Prozessor gesucht? -> Prozessoren, die ich abgeben kann (unter "Available for trading")
    "Überschüssige" Prozessoren oder Hardware? -> Einfach PN an mich schicken :b1: -> Hardware, die ich suche

    Einmal editiert, zuletzt von Xaar (30. April 2023 um 15:03)

  • Mir fällt erst jetzt nach all den (vermutlich) Jahren auf, dass dieses Feature Browser-seitig via Skript implementiert ist. Klar, das „Originalgröße auf Klick“ geht auch nicht anders eleganter, aber zumindest die platzreduzierte Darstellung wäre doch auch via CSS realisierbar und ich dachte stets, das würde auch so getan.

    Jedenfalls wird die Logik da an das load-Event vom window gehangen und das wird im Rendering-Prozess ziemlich spät gefeuert. Das kann ein fauler/träger Request zu einem Imagehoster durchaus zäh wirken lassen. Übrigens hab ich erfolglos nach einer Referenz für die Methode Event.observe gesucht, weil das auf den ersten Blick so nativ aussah, dabei kommt das tatsächlich aus dem Prototype Framework. m(

    • • • – • – – • – –

  • Ich hab das Script vor mindestens 11 Jahren geschrieben. Client-side ist es, weil es keinen Sinn macht dass jedes Bild erst einmal auf dem Server runterladen dann noch einmal auf dem Client geladen wird. Serverseitig die Bildergrösse zu berechnen würde die Response unnötig verlängern.

    Keine Ahnung ob es damals eine bessere Lösung gegeben hätte, aber client-side ist das Hauptproblem, dass du die Bildgrösse nicht hast, bevor der Browser nicht das Bild geladen hat. Deswegen der DOM `onload` Event, der wartet bis alle Bilder geladen sind. Es scheint ein per-Image onload event zu geben, vielleicht könnte man das an jedes DOM Element rankleben, falls das tatsächlich schneller reagiert. Keine Ahnung warum ich das damals nicht so gemacht habe, vielleicht zu Unerfahren, vielleicht hatte es gute Gründe und der Event war in den Browsern vor 11 Jahren nicht supported. Wobei selbst partiell geladene Bilder Überbreite erzeugen können, das heisst es bräuchte eigentlich einen Event für "Bildergrösse ist jetzt bekannt", selbst wenn das Bild noch lädt. Keine Ahnung wie schwer das ist.

    Inzwischen könnte an das ggf. gut mit CSS lösen, vermute aber dass das vor 11 Jahren mit IE7 Support weniger eine Option war.

    Prototype ist im Einsatz weil es vom MyBB bereits auf allen relevanten Seiten mitgeladen wird. JavaScript vor 11 Jahren war ohne Framework ziemlich Kacke, und extra ein neues Framework wie JQuery (damals in Mode) zu laden für den Bilder-Resize ist jetzt auch nicht elegant. Die Wahl von Prototype würde ich auch heute noch verteidigen.

  • Ich bin mir jetzt gar nicht so sicher, welches konkrete (damalige) Problem das Skript überhaupt zu lösen versucht und mir fehlt auch gerade die Muße, das zu rekonstruieren (und ob es noch nötig ist). Wenn das mindestens elf Jahre sind, dann hat sich zwischenzeitlich ja einiges getan und die Rahmenbedingungen haben sich womöglich geändert. Ich würde wahrscheinlich auch ein bisschen stutzig vor dem Frontend-ECMAScript-Code sitzen, den ich vor gerade mal vier oder fünf Jahren geschrieben habe und mich wundern, warum ich Dieses oder Jenes genau so implementiert habe. Aber festhalten lässt sich, dass es erst läuft, wenn alle Resourcen erfolgreich geladen sind.

    Ach ja, wenn das Framework gratis ist, weil MyBB es schon mitbringt, ist daran nichts auszusetzen, hätte ich wohl auch so gemacht. Hab mich nur gewundert, woher diese ominöse Methode kommt und Prototype war mir auch kein Begriff.

    • • • – • – – • – –

    Einmal editiert, zuletzt von s4ndwichMakeR (23. Mai 2023 um 20:57)

  • AFAIK war das Problem, dass Leute mit großer Auflösung die Screenshot-Sammelthreads (oder generell alles mit Screenshots) unlesbar gemacht haben. Deshalb wurde dieses wilde Skalierungsscript eingebaut, sodass man nach Ladezeit die Threads immerhin wieder komfortabel durchscrollen kann. Gab damals auch Gründe für diesen JS Hack statt irgendwas anderes, aber ja... Ist dann doch zu lange her. Ich war mit meinen 1280x1024 damals auf jeden Fall froh drum :D

    Einmal editiert, zuletzt von winfreak (23. Mai 2023 um 23:04)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!