Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Bilder nachladen (https://www.delphipraxis.net/213308-bilder-nachladen.html)

Peter666 6. Jul 2023 14:08

Bilder nachladen
 
Hi,

die Sache ist wahrscheinlich trivialer als gedacht, aber ich habe ein Problem mit folgendem. Ich lade eine JSON Datei aus dem Netz in dieser befinden sich hunderte Links zu Bildern die in der Regel 1920x1080 Pixel groß sind. Ich zeige diese in einer Liste (skaliert) an, die einzelnen Items erstelle ich sofort, die Bilder lade ich sobald das Listview Element zum ersten mal gezeichnet wird in einem separaten Thread der über ein Callback dann synchronisiert das Listview Element informiert sich neu zu zeichnen mit dem übergebenen Bild. Das ganze ist zum einen total inperformant und ich frage mich wie ihr das macht? Bei Javascript reicht es ein Element mit dem Bild zu erstellen und das geht im Browser 1a. Habt ihr Ansätze wie man das am besten macht? Auch gibt es Probleme, wenn ich das Element lösche und das Bild ist noch nicht geladen.

Papaschlumpf73 6. Jul 2023 14:13

AW: Bilder nachladen
 
Viele benutzen dafür Thumbnails. Dann müssen nur ganz kleine Vorschaubilder geladen werden. Kannst du ggf. auch kleinere Formate laden?

jaenicke 6. Jul 2023 19:48

AW: Bilder nachladen
 
Du solltest die Bilder im Hintergrund stetig (und mehrere parallel, Stichwort Threadpool, Tasks oder schlicht TParallel.For) nachladen und nicht erst, wenn sie konkret angezeigt werden. Im Browser passiert auch genau das.

Wenn du dann ein Bild benötigst, schaust du, ob es schon da ist, ansonsten zeigst du "wird geladen... (25%)" an und priorisierst dessen Download, sprich führst ihn sofort aus. Dann geht es zwar nicht schneller, aber der Benutzer bekommt ein Feedback, weshalb die Benutzererfahrung dennoch positiver ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz