編集の要約なし |
編集の要約なし |
||
(2人の利用者による、間の2版が非表示) | |||
28行目: | 28行目: | ||
Wikiaは条件値の細かいデータベースをやろうとすると、想定外の出来事が結構起きてよくありませんねえ。--[[利用者:Ysuka|Ysuka]] 2007年11月23日 (金) 17:46 (UTC) |
Wikiaは条件値の細かいデータベースをやろうとすると、想定外の出来事が結構起きてよくありませんねえ。--[[利用者:Ysuka|Ysuka]] 2007年11月23日 (金) 17:46 (UTC) |
||
+ | |||
+ | 実は、時おりサーバー側のキャッシュによる不具合が起きていることがあります。テンプレートなどの動作不具合などがある場合でも、数日すると直っていることがあります。もちろん技術の方でもいろいろ調整はしているのですが、こればっかりはこちらでも手が出せません。 |
||
+ | |||
+ | 面倒なことをおかけして本当に申し訳ありません。 --[[User:Yukichi|Yukichi / Shun]] ([[w:c:ja:User talk:Yukichi|Talk]]) <staff /> 2007年11月24日 (土) 02:10 (UTC) |
||
+ | |||
+ | |||
+ | いーえ。まあ、キャッシュにしては1週間ぐらいこの状態のまんまですし、上に挙げたリンクにそって「展開前カウンター」の値を読んでみるとやっぱり2M超えてますし(展開後は1Mぐらい)、やっぱり自分の記述が原因じゃないでしょうかー。 |
||
+ | |||
+ | 経過としては、「擬似For」をMetawikiから持ってきてみたのですが、こっち使ったほうが展開前カウンターが大きくなるという(笑)使えん。 |
||
+ | |||
+ | トランスクルージョン防止は、テンプレートに値が渡せないみたいなんですよね。たとえば<pre>{{ {{ #if: {{{値|}}} | テンプレ名{{!}}渡す値 }} }}</pre>とか書くと、展開後の<nowiki>{{ テンプレ名|渡す値 }}</nowiki>という部分が文字列だと思われてしまう。なぜだろう? これじゃーちょっと使えません。 |
||
+ | |||
+ | 仕方ないのでさしあたりテンプレートを細切れにして対応しようと思います。--[[利用者:Ysuka|Ysuka]] 2007年11月27日 (火) 16:40 (UTC) |
||
+ | |||
+ | |||
+ | トランスクルージョン防止について、ちょっと進展。 |
||
+ | <pre>{{ {{ #if: {{{値|}}} | テンプレ名 }} | 渡す値 }} }}</pre> |
||
+ | こう書けば値渡せました。思ってみりゃ当然ですね。毎度面倒な話ばかりで申し訳ない。--[[利用者:Ysuka|Ysuka]] 2007年11月30日 (金) 14:57 (JST) |
2007年11月30日 (金) 14:57時点における最新版
また巨大なテンプレートを作っていたときに起きたことなんですが、今度は条件文が何も効かなくなってしまいました。
上がテンプレートを使っているページ、下がテンプレートの原版です。ご覧のように、#if:という文字がぜんぶむき出し、また関係のないテンプレート呼び出しも二重カッコ内部が処理できずにいるような状態になっています(ページ下部に「{{i|オゥ}}」という、下記のアイテム情報とは関係のないテンプレート呼び出しをかけていますが、そちらも動きません)。
文法は何度もチェックしていますから大丈夫です。なぜそこまで断言できるのか、というと、当面の対策があるからです。テンプレートの上部のほうに巨大な #if:~ ではじまり、 #switch: で長々と分岐をさばくという部分があるのですが、この中身を20行ぐらい省略すると正常に動くのです。
その動いている様子がこちらのセット。
今回は前回の、1MBオーバーとは症状がちょっと違いますし、さすがに容量が膨らみすぎないように気をつけてコーディングしているのでまたオーバーしたということはないと思います。これは何事でしょう?--Ysuka 2007年11月21日 (水) 14:40 (UTC)
すいません、ちょっと調べさせてください。--Yukichi / Shun (Talk) 2007年11月23日 (金) 02:22 (UTC)
原因はわかったかも。たぶんこれでしょう? wikipedia:ja:Help:テンプレートの制限
「アイテム情報」で使っている「装備可能職」という名前のテンプレートが、最大16個までの値を受け入れようと思って、中で16回同じ記述をしているんですよ。条件分岐でマッチした場合だけ分岐へたどり着くようになっているので、容量制限とは関係なくて済むだろうと。そして、これを16回ほど呼ぶつもりでした。実際には6回呼んで、7回目からおかしくなったという症状です。
それがたぶん、上記リンクの「展開前カウンター」の制限を飛び出したのではないでしょうか。ちょっとリンク先の挙げている例示が何を表しているのか理解できませんでしたが、ともかくこのように同じテンプレートを何度も何度も呼ぶとよろしくないと。そこはわかりました。
とりあえず装備可能職を「擬似For文」に入れて展開前サイズを減らしたり、上記リンクにある「トランスクルージョンさせないようにする」方法を使ってなんとか縮めたりしてやりくりしようと思っていますが、アドバイスが何かあればぜひ欲しいです。
Wikiaは条件値の細かいデータベースをやろうとすると、想定外の出来事が結構起きてよくありませんねえ。--Ysuka 2007年11月23日 (金) 17:46 (UTC)
実は、時おりサーバー側のキャッシュによる不具合が起きていることがあります。テンプレートなどの動作不具合などがある場合でも、数日すると直っていることがあります。もちろん技術の方でもいろいろ調整はしているのですが、こればっかりはこちらでも手が出せません。
面倒なことをおかけして本当に申し訳ありません。 --Yukichi / Shun (Talk) 2007年11月24日 (土) 02:10 (UTC)
いーえ。まあ、キャッシュにしては1週間ぐらいこの状態のまんまですし、上に挙げたリンクにそって「展開前カウンター」の値を読んでみるとやっぱり2M超えてますし(展開後は1Mぐらい)、やっぱり自分の記述が原因じゃないでしょうかー。
経過としては、「擬似For」をMetawikiから持ってきてみたのですが、こっち使ったほうが展開前カウンターが大きくなるという(笑)使えん。
トランスクルージョン防止は、テンプレートに値が渡せないみたいなんですよね。たとえば
{{ {{ #if: {{{値|}}} | テンプレ名{{!}}渡す値 }} }}
とか書くと、展開後の{{ テンプレ名|渡す値 }}という部分が文字列だと思われてしまう。なぜだろう? これじゃーちょっと使えません。
仕方ないのでさしあたりテンプレートを細切れにして対応しようと思います。--Ysuka 2007年11月27日 (火) 16:40 (UTC)
トランスクルージョン防止について、ちょっと進展。
{{ {{ #if: {{{値|}}} | テンプレ名 }} | 渡す値 }} }}
こう書けば値渡せました。思ってみりゃ当然ですね。毎度面倒な話ばかりで申し訳ない。--Ysuka 2007年11月30日 (金) 14:57 (JST)