1

我花了几个小时在 Govinda 中挖掘 WebdnaCodeSparker 的出色工作。

我必须承认我从来没有使用过[函数],现在我想知道如何使用它......我想到了文档,我很清楚如何将变量发送到将执行它的函数。

但是如何在搜索上下文中使用函数呢?例子:

我将以下代码放在 [function] 中

[搜索 mydb.db&neSKUdata:FINDALL] [founditems][/founditems] [/search]

我想得到结果

[SKU]-[名称]

也许函数不是为了做这种动作?

4

1 回答 1

1

我想说,如果您不知道自己想要什么(例如 a [function]),那么最好避免仅仅因为您认为应该以复杂性来做就增加复杂性)。...就像您可以将[search]内联代码放入代码中一样。

但是当你准备好时,有几个很好的理由[function]在 webdna 中使用,.. 至少这些是一些原因:

  1. 使您的代码更易于阅读

  2. 使您的代码更易于维护

  3. 从代码中删除不需要的空格

  4. 让你的代码更容易编写
    (一旦你在一个复杂的站点中完成了额外的工作来设置一堆函数来完成各种任务,那么编写新代码来使用这些函数会更快/更容易!你只需调用职能!)

您可以将函数想象成一个[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>
于 2012-02-22T16:40:01.750 回答