0

100個程度の値を含むコンボを持つWebフォームを作成しています。値は同じです。

フォームには複数のレコードが含まれる場合があります。したがって、100のレコードがある場合、「ダウンロード」の観点からはかなり間違っているように見える10,000行があります。

重要なのは、データベースからIDを保持するために、そのコンボを動的に保ちたいということです。

だから私は次のことに思いついた:

  .....
 <script>
      stupidCombo = "<option>a"+
                    "<option>b"+
                    ...
                    "<option>99zzz"+
                    "</select>";
 </script>
 ..... form here
 .... for each item in huge list do paint <table><tr> etc. etc 

 <td>
 <select name="comb-<%=id%>">
      <option selected><%=obj.val%>
      <script>document.write(stupidCombo);</script>
 </td>
... close form, table, html etc. 

私はそれをレンダリングし、見栄えがします。ページは50k行から5k行に減少し、選択はクライアント側のjavascriptによって作成されます。

私の質問は.....

これでいい?

リスクはありますか?

ほとんどのjavascriptフレームワークが機能するのは誰かを理解した後、このアイデアを借りますが、それらのほとんどは、ドキュメント自体ではなく、 <div>要素で機能します。

私はIE6をターゲットにしており、これは明日の朝に本番環境で実行する必要があるクイックフィックスです(したがって、これにあまり時間をかけたくない)が、リクエストごとに50,000行を書き込む必要はありません。それを助けることができます。

ありがとう

4

5 に答える 5

1

JavaScriptが無効になっていると、明らかに機能しません。

于 2009-06-02T08:46:53.207 に答える
1

document.write によって生成された HTML は通常の HTML と同じように機能するため、ソリューションに技術的な問題はありません。(もちろん、このようなソリューションは、JavaScript が有効になっている場合にのみ機能します)

ところで、オプションの数が多いリストについては、ネイティブの selectbox を置き換えることができる"suggest box" componentを見ることができます。

于 2009-06-02T08:47:51.783 に答える
0

Google は常に ("document.write") (Analytics/Adsense/...) を行っているため、なぜ問題が発生するのかわかりません。

<script>タグがタグ内にあるため、ソリューションは少し奇妙に見えるため、<select>いくつかのブラウザーで確認することをお勧めします。結局のところ、IE が何をするかは決してわかりません :)

于 2009-06-02T08:47:10.117 に答える
0

アップデート。

私はちょうど私が求めた方法でやったし、それはうまくいきました. 内部のjsに問題はありませんでした。

しかし...

テーブルがレンダリングされると、ユーザーが次にやろうとすること (常にユーザーは何か予期しないことをします) は..

「わかりました。レポートは問題ないようです。コピーして MS-Excel に貼り付けます。ありがとうございます。」

これは私が本当に気にしないものです。ユーザー次第ですが、結果は次のとおりです。Excel 内の JavaScript エンジンは IE 内ほど優れていないため、コンボをコピーするのに時間がかかり、実際には Excel アプリケーションが使用できなくなります。

IEからExcelへのコピー/貼り付けが非常に優れているため、実際に生成されたすべてのhtmlをコピーし、Excelがjavascriptを実行しようとしてもひどい結果になるとは知りませんでした。

生の html を残してもう一度試してみて、それがうまくいくかどうかを確認します。

:(

于 2009-06-09T17:08:22.450 に答える