我会说,如果您不知道自己想要什么(例如[function]),那么最好避免仅仅因为您认为应该使用复杂性来增加复杂性)。 ...就像您可以将 [search] 内联到您的代码中一样。
但是当你准备好时,有几个很好的理由在 webdna 中使用[function],.. 至少这些是一些原因:
让您的代码更易于阅读
让您的代码更易于维护
从代码中删除不需要的空格
-
使您的代码更易于编写
(一旦你在一个复杂的站点中完成了额外的工作来设置一堆函数来执行各种任务,那么编写新代码来使用这些函数会更快/更容易!你只需调用函数!)
您可以将函数想象为[include].. 它可以有效地让您将一堆代码放在页面中的一个位置.. 只需一行短行(函数调用)。
我喜欢使用这样的函数......作为包含......我经常将函数定义放在同一个文件中(如果该函数的代码仅对该页面是唯一的),......但我把函数定义在页面顶部,不碍事,而不是在调用函数的地方,这会使我的代码更难阅读。
使用函数作为一种方法来一遍又一遍地做同样的事情(或一遍又一遍地做类似的事情)而不一遍又一遍地编写相同的代码也是很好的。这使您的代码更易于维护。如果稍后需要进行一些更改(比如客户现在想要一个有序列表 (<ol>) 而不是无序列表 (<ul>))......那么您只需在一个地方进行更改(在函数定义),而不是在所有调用函数的地方。
因为[function] 只输出介于[return]...[/return] 之间的代码,所以您可以在[function...]...[/function] 内但在任何[return]...[/return] 之外进行所有计算。然后只输出您想要输出的最终结果。 . 将最终结果放入[return]...[/return]。
[function name=finalResult]
[math]a=0[/math]
this
is
to
mimic
a
big
super
long
block
of
code
[text]finalResult=
[math]a=[a]+1[/math]
[/text]
with
tons
of
white
space
where
we
do
lots
of
calculations
[return][finalResult][/return]
[/function]
举例说明如何使用函数调用返回搜索结果,以便数据库可以更改,但结果的格式始终相同,您可以这样做:
[function name=getResults]
[search db=[whichDb].db&neSKUdata=[blank]]
[founditems]
[return]<div class"myclass">[SKU]-[name]</div>[/return]
[/founditems]
[showif [numfound]=0]
[return]Nothing to see here[/return]
[/showif]
[/search]
[/function]
在你的页面上
<div class="resultsContainer">
[getResults whichDb=myDb]
</div>
又在别的地方
<div class="resultsContainer">
[getResults whichDb=anotherDb]
</div>