load, url and repeat

Dave Cragg dcragg at lacscentre.co.uk
Sun Jan 4 05:05:52 EST 2004


At 4:42 pm +0100 3/1/04, Ludovic Thébault wrote:

>How use the url command in a loop ?
>
>I want to get a lot of web page which an url like this :
>http://domain.com/page.php?ID=88
>
>I just need to change the number of ID to get all pages.
>
>But it's seem that the loop is too fast to get the info, even with a
>"load" command.
>
>I try with this script :
>
>on mouseup
>repeat with n=1 to 810
>     put "http://domain.com/page.php?ID="&n into turl
>     load url turl
>     put n&&the urlstatus of turl&cr after msg
>     if the urlstatus of turl = "cached" then downloadcomplete
>end repeat
>end mouseup
>
>
>   on downloadcomplete
>    -- do my stuff
>     unload url turl
>   end downloadcomplete
>
>How do my stuff after the url is really cached ?

Instead of "load url" in this case, you could use 
"get url". This will ensure the script blocks 
until the url has been "got".

  on mouseup
   repeat with n=1 to 810
      put "http://domain.com/page.php?ID="&n into turl
      get url turl
        if the result is empty then
         ## do stuff with "it" here
       else
         ## handle error here
       end if
   end repeat
  end mouseup

"load url" is useful when you want to cache the 
url and access it later, or when you don't want 
your script to block while the data is 
downloaded. Neither seems to be the case here so 
"get url" is probably easier.

When using "load url", you need to use "with 
message" if you need to know when the url has 
finished loading. Something like this:

on mouseup
  repeat with n=1 to 810
      put "http://domain.com/page.php?ID="&n into turl
      load url turl with message "downloadcomplete"

  end repeat
end mouseup

   on downloadcomplete pUrl, pStatus
     if pStatus is "cached" then
      -- do my stuff
     else
     -- handle error
     end if
     unload url pUrl
   end downloadcomplete

Cheers
Dave


More information about the use-livecode mailing list