notice the use of send "" in 0 milliseconds... This ensures that the rendering of the grid does not get held up by the download. so the download happens in the background.
On Mon, Feb 21, 2022 at 6:47 PM Tom Glod <t...@makeshyft.com> wrote: > This is how i did it ..... I hope this helps. > > First to use the "numberofrecords" way of setting the datagrid data. > This is key, that way you only ever trigger loading of visible rows. > > This is the code from my dg column. > > global PixabayResults > > > if PixabayResults["cache"]["DL:" & PixabayResults["data"][the > dgindex of me]["previewURL"]] is empty then > send "GetImageTrigger " & the dgindex of me & comma & quote & > PixabayResults["data"][the dgindex of me]["previewURL"] & quote & comma & > random(25500) to card "Search Pixabay" > put image id 1410033 of card "Resources" into image 1 of me -- > 14110033 image id is the placeholder. > set the visible of image 1 of me to true > set the MyIndex of me to empty > //set the visible of group "Image Tools" of me to false > else > put PixabayResults["cache"]["DL:" & PixabayResults["data"][the > dgindex of me]["previewURL"]] into image 1 of me > set the visible of image 1 of me to true > set the MyIndex of me to the dgIndex of me > delete global PixabayResults["downloaded"][the dgIndex of me] -- > delete the flag to update this row because its a visible row with newly > downloaded file > //set the visible of group "Image Tools" of me to false > end if > > > on GetImageTrigger ThisIndex,ThisURL,ThisRandom > send "GetAndCachePreviewImage " & ThisIndex & comma & quote & ThisURL & > quote & comma & random(25500) to card "Search Pixabay" in 0 milliseconds > end GetImageTrigger > > on GetAndCachePreviewImage ThisIndex,ThisURL,ThisRandomNumber > Task_Scheduler_Add "Download File To Variable","DL:" & > ThisURL,ThisURL,"" -- this schedules TSNET request to download image then > waits for the image to download > > wait until AppStarterStackTaskScheduler["finished"]["DL:" & ThisURL] is > not empty with messages -- wait with messages until its finished > > if AppStarterStackTaskScheduler["finished"]["DL:" & ThisURL] is "error" > then > throw "Thumbnail Download Failed:" & ThisURL > else > put AppStarterStackTaskScheduler["data"]["DL:" & ThisURL]["data"] > into PixabayResults["cache"]["DL:" & ThisURL] > put 1 into PixabayResults["downloaded"][ThisIndex] > delete variable AppStarterStackTaskScheduler["data"]["DL:" & > ThisURL]["data"] > end if > end GetAndCachePreviewImage > > > > > > > > > > > On Mon, Feb 21, 2022 at 6:20 PM Tom Glod <t...@makeshyft.com> wrote: > >> Dan can you check this video and the pixabay search example? >> https://youtu.be/jN2bQbhQ0L8?t=216 >> Is this what you have in mind? >> These images are loaded as the row comes into view. >> >> On Mon, Feb 21, 2022 at 6:07 PM Dan Friedman via use-livecode < >> use-livecode@lists.runrev.com> wrote: >> >>> Richard, >>> >>> Probably not over a couple thousand. The images are square -- they need >>> to be resized to the DG template image size, but not scaled (H vs W). >>> >>> -Dan >>> >>> >>> On 2/21/22, 12:14 PM, "use-livecode on behalf of Richard Gaskin via >>> use-livecode" <use-livecode-boun...@lists.runrev.com on behalf of >>> use-livecode@lists.runrev.com> wrote: >>> >>> How many images? >>> >>> I once made a solution for 3,000 images, but it may not scale well >>> above >>> 8,000 or so depending on memory and connection speed. >>> >>> -- >>> Richard Gaskin >>> Fourth World Systems >>> >>> >>> >>> >>> Dan Friedman wrote: >>> >>> > Does anyone have any answers to the issue of loading a long list >>> with >>> > images so that it loads images "as needed" like a webpage does. >>> > >>> > I have a DataGrid with several hundred rows. Each row has a >>> specific >>> > image that is to be displayed with that row (like a list of >>> songs). >>> > The image is loaded from the web. Is there a method to load the >>> > DataGrid and only load the images for the rows that are shown? >>> And, >>> > when you scroll the grid, the images for the newly shown rows are >>> then >>> > loaded. The loading need to happen somehow without halting the >>> > scrolling or making it stutter. >>> > >>> > I hope that makes sense! >>> > -Dan >>> >>> >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode@lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode@lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >>> >> _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode