Re: [WebDNA] SWITCH/CASE or SHOWIF
This WebDNA talk-list message is from 2008
It keeps the original formatting.
numero = 101493
interpreted = N
texte = Thanks! I've decided to go with the switch/case statements. It looks like it doesn't add any line breaks to the code. I didn't try the SHOWIF method.Dan Strong wrote:> FWIW, I tested both sets of code below and saw absolutely ZERO > difference in performance.> -Dan> > > On Thu, 20 Nov 2008 12:44:21 -0800> "Dan Strong"
wrote:>> On Thu, 20 Nov 2008 14:53:13 -0500>> Ki Song wrote:>>> We have about a 100 different brands at our store.>>> Some brands have "static" brand pages (brand/index.html) while others >>> have "dynamic" brand pages (dynamic.tpl?brand=somebrand).>>>>>> 1. To go through 100 different choices, is a switch/case more >>> efficient or 100 showif statements more efficient?>>>> My instict is that switch/case would be faster since it seems to be a >> "single" operation vs 100 [showif] operations, but it is untested and >> based on nothing but my own buest guess.>>>> Try a test similar to these and wrap [elapsedtime] around them or >> compare the start [time] to the end [time]:>>>> [text]x=[math]ceil([RANDOM format=float]*(100))[/math][/text]>>>> [Switch value=[x]]>> [loop start=1&end=100]>> [Case value=[index]]The value of x is [x][/Case]>> [/loop]>> [Default]>> [!]--The "default" case is probably not needed here since one of >> these cases will *always* be true, but hey, I still end my [search]es >> w/ [/search] --[/!]>> [/Default]>> [/Switch]>>>> ------------>>>> [text]x=[math]ceil([RANDOM format=float]*(100))[/math][/text]>>>> [loop start=1&end=100]>> [showif [x]=[index]]The value of x is [x][/showif]>> [/loop]>>>> I'd be curious to see what the results are.>>>>> 2. In the final generated HTML code, when 100 SHOWIF statements are >>> processed, but only 1 is actually shown, the other 99 SHOWIF >>> statements create line breaks. Is there a way to prevent the line >>> breaks from showing up if a showif does not evaluate to true?>>>> I got this one from someone on the list:>>>> Wrap all "line-breaky" code like this:>>>> [getchars start=1&end=&trim=both]>> [grep search=[%0D%0A][%0D%0A%09]*&replace=%0D]>> ... your line-breaky code goes here ...>> [/grep]>> [/getchars]>>>>>>>> 3. Does a SWITCH/CASE statement create line breaks for all the cases >>> that evaluate to false?>>>> Dunno, but if so, wrap like above.>> -Dan> ---------------------------------------------------------> This message is sent to you because you are subscribed to> the mailing list .> To unsubscribe, E-mail to: > archives: http://mail.webdna.us/list/talk@webdna.us> old archives: http://dev.webdna.us/TalkListArchive/>
Associated Messages, from the most recent to the oldest:
Thanks! I've decided to go with the switch/case statements. It looks like it doesn't add any line breaks to the code. I didn't try the SHOWIF method.Dan Strong wrote:> FWIW, I tested both sets of code below and saw absolutely ZERO > difference in performance.> -Dan> > > On Thu, 20 Nov 2008 12:44:21 -0800> "Dan Strong" wrote:>> On Thu, 20 Nov 2008 14:53:13 -0500>> Ki Song wrote:>>> We have about a 100 different brands at our store.>>> Some brands have "static" brand pages (brand/index.html) while others >>> have "dynamic" brand pages (dynamic.tpl?brand=somebrand).>>>>>> 1. To go through 100 different choices, is a switch/case more >>> efficient or 100 showif statements more efficient?>>>> My instict is that switch/case would be faster since it seems to be a >> "single" operation vs 100 [showif] operations, but it is untested and >> based on nothing but my own buest guess.>>>> Try a test similar to these and wrap [elapsedtime] around them or >> compare the start [time] to the end [time]:>>>> [text]x=[math]ceil([RANDOM format=float]*(100))[/math][/text]>>>> [Switch value=[x]]>> [loop start=1&end=100]>> [Case value=[index]]The value of x is [x][/Case]>> [/loop]>> [Default]>> [!]--The "default" case is probably not needed here since one of >> these cases will *always* be true, but hey, I still end my [search]es >> w/ [/search] --[/!]>> [/Default]>> [/Switch]>>>> ------------>>>> [text]x=[math]ceil([RANDOM format=float]*(100))[/math][/text]>>>> [loop start=1&end=100]>> [showif [x]=[index]]The value of x is [x][/showif]>> [/loop]>>>> I'd be curious to see what the results are.>>>>> 2. In the final generated HTML code, when 100 SHOWIF statements are >>> processed, but only 1 is actually shown, the other 99 SHOWIF >>> statements create line breaks. Is there a way to prevent the line >>> breaks from showing up if a showif does not evaluate to true?>>>> I got this one from someone on the list:>>>> Wrap all "line-breaky" code like this:>>>> [getchars start=1&end=&trim=both]>> [grep search=[%0D%0A][%0D%0A%09]*&replace=%0D]>> ... your line-breaky code goes here ...>> [/grep]>> [/getchars]>>>>>>>> 3. Does a SWITCH/CASE statement create line breaks for all the cases >>> that evaluate to false?>>>> Dunno, but if so, wrap like above.>> -Dan> ---------------------------------------------------------> This message is sent to you because you are subscribed to> the mailing list .> To unsubscribe, E-mail to: > archives: http://mail.webdna.us/list/talk@webdna.us> old archives: http://dev.webdna.us/TalkListArchive/>
Ki Song
DOWNLOAD WEBDNA NOW!
Top Articles:
Talk List
The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...
Related Readings:
WebCat2_Mac RETURNs in .db (1997)
[OT] Graphic Art Services (2004)
Re:shipping code (1998)
I'm Sorry - OFF TOPIC (2000)
test (2004)
WC Database Format (1997)
Switch Case Context (2004)
Secure Server (1997)
Authenticate (1997)
BUG REPORT -- Refusing connections! (1999)
I forgot (1998)
GuestBook example (1997)
Any 4.5 to 5.0 upgrade gotchas? [OT] (2003)
I'm having trouble using [url][interpret][math] together in lookup (1997)
[WriteFile] problems (1997)
Accented chars and emailer (1998)
HomePage Caution (1997)
Looking up two prices in Formulas.db (1997)
List Archives? (2005)
WebCat2b15MacPlugIn - [authenticate] not [protect] (1997)