1

私は WebdnaCodeSparker で Govinda の素晴らしい仕事を掘り下げるのに何時間も費やしてきました。

私は [関数] を使用したことがないことを告白しなければならず、今はそれをどのように使用するのか疑問に思っています... ドキュメントを考えてみました。それを実行する関数に変数を送信する方法は明らかです。

しかし、検索コンテキストで関数を使用する方法は? 例:

[関数] に次のコードを入れます。

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

そして、私は結果を取得したい

[SKU]-[名前]

たぶん、関数はこの種のアクションを実行するためのものではありませんか?

4

1 に答える 1

1

何か(のような)が必要かどうかわからない場合は[function]、複雑さでそれを行うことになっていると思っているという理由だけで、複雑さを追加しないようにする方がよいと思います)。[search]...コードにインラインを入れることができるように。

しかし、準備ができたら、[function]webdnaで使用するいくつかの大きな理由があります..少なくともこれらはいくつかの理由です:

  1. コードを読みやすくするため

  2. コードの保守を容易にするため

  3. コードから不要な空白を削除するには

  4. コードを書きやすくするため
    (複雑なサイトでさまざまなタスクを実行するための一連の関数を設定するための追加の作業を行った後、それらの関数を使用するための新しいコードを書くことははるかに速く/簡単です!関数!)

[include]関数は..のように考えることができます。これにより、ページの1つの場所に大量のコードを効果的に配置できます。短い行(関数呼び出し)を1つだけ使用できます。私はそのような関数をインクルードとして使用するのが好きです...同じファイルに関数定義を入れることがよくあります(その関数のコードがそのページだけに固有である場合)...しかし、関数定義を入れますページの上部にあり、邪魔にならないように、関数の呼び出しがある場所ではなく、コードが読みにくくなります。

同じコードを何度も書かずに、同じことを何度も繰り返す(または同じようなことを何度も繰り返す)方法として関数を使用するのも良いことです。これにより、コードの保守が容易になります。後で必要な変更がある場合(クライアントが順序なしリスト(<ol>)ではなく順序付きリスト(<ul>)を必要としている場合など)...変更する必要があるのは、(関数定義内の)1か所だけです。関数が呼び出されるすべての場所で。

[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 に答える