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:
Weird Math and SV (1997)
Webstar 1.3.1 PPC (1997)
[cart] generation (1998)
RequiredFields template (1997)
webcat- multiple selection in input field (1997)
HomePage Caution (1997)
show all problem (1997)
Math Function (1997)
New Weird Behavior (bug report) (2000)
same bill to and ship to? (1998)
New public beta available (1997)
[returnraw] and form variables (1998)
[Listfiles] vs Netfinder (1997)
Search results templates (1996)
Sample Tearoom Search Error (1997)
WebCatalog NT beta 18 now available (1997)
_ in front of field name (1998)
sendmail for email (was Netforms) (1998)
Re:quit command on NT (1997)
PCS Frames (1997)