私はランダムな間隔で配列に新しい文字列を追加する関数を持っています。配列の長さが増えるたびに、javascriptで表示したり、新しい文字列をjqueryでページに表示するにはどうすればよいですか?配列の長さが増えるたびに新しいコンテンツをページに動的に追加するにはどうすればよいですか?
答えて
あなたは、アレイ表示コンテナ(Javascript dynamic array of stringsから適応)が呼び出されるたびに更新されます再帰的なタイマー機能を設定することができます
<html>
<body>
<script type="text/javascript">
var arr = [];
function add() {
arr.push("String " + Math.random());
}
function show() {
var html = '';
for (var i = 0; i < arr.length; i++) {
html += '<div>' + arr[i] + '</div>';
}
var con = document.getElementById('container');
con.innerHTML = html;
}
function start() {
setTimeout(function() {
add();
// Note: you can call show in an independent timeout
show();
start();
}, 1000);
}
</script>
<input type="button" onclick="start();" value="start" />
<br />
<div id="container"></div>
</body>
</html>
をそれとも、賢くそれを作ると、コンテナを更新することができた場合のみ、アレイの長さが変わった。
さらに、表示コンテナの更新コールバックを配列更新関数に渡して、配列を更新するたびに配列を表示し直すだけです。
<html>
<body>
<script type="text/javascript">
var arr = [];
var lastDisplayed = 0;
function add() {
arr.push("String #" + lastDisplayed + ": " + Math.random());
show(); // Update display container
};
function show() {
var node;
var textnode;
var container = document.getElementById('container'); // Get parent container
for (; lastDisplayed < arr.length; lastDisplayed++) {
node = document.createElement("li"); // Create a <li> node
textnode = document.createTextNode(arr[lastDisplayed]); // Create a text node
node.appendChild(textnode);
container.appendChild(node);
}
};
function start() {
setTimeout(function() {
add();
start();
}, 1000);
};
</script>
<input type="button" onclick="start();" value="start" />
<br />
<ul id="container"></ul>
</body>
</html>
内部的に、角度および他のフレームワークは、これらのアプローチの組み合わせを実装しています。
重要な注意:アプリケーションによっては、ページを更新してインターフェイスの応答性とパフォーマンスを維持するためのさまざまな方法を試してみることをおすすめします。たとえば、配列要素があまりにも頻繁に追加された場合は、GUIの更新間隔を間に合わせることができます。また、配列の既存の要素が変更されていない場合は、最初の例のように、DOMモデルに要素を追加し続けることもできます(2番目の例を参照)。 Angularのような専用のフレームワークを使用する場合は、同様の問題を考慮する必要があります。
これにはすべてのタイプの問題があります。このようにinnerHTMLを使用すると、完了したすべての要素が毎回画面に書き換えられます。少なくとも、それはUIにスパスを引き起こし、さらに悪い場合には重大なパフォーマンスの問題を引き起こします。ネイティブのjavascriptには、DOM要素を追加するためのappendとprependメソッドがあり、jQueryを参照して以来、これは素晴らしい提案ではありません。IMHO – QBM5
JavaScriptの最後の例を追加しました。私の答えは、データの更新に基づいてGUIを更新する方法に焦点を当てました。詳細なコンテキストがなくても、質問の作成者が何であるかを知るのは難しいです。パフォーマンスに関する考慮事項は、独自のスレッドに値するかもしれません。 – Maksym
とにかくオペレーションのようには見えません。私が助けに時間がかかるときに大好き、彼らはただ私の応答をぶら下げておきます。 – QBM5
ノックアウトや角度のようなプロパティのサブスクリプションを扱うライブラリを使用することをお勧めしますが、これは質問に記載されていないので、この例を挙げます。
var someArray = [];
var standardPush = someArray.push;
someArray.push = function(){
// depending on your requirements you can switch these next two lines around
for (var i = 0; i < arguments.length; i++) {
updateUI(arguments[i]); // call code to update UI
standardPush(arguments[i]); // actually ad record to array
}
}
function updateUI(record){
// Some code that updates your UI
// example
$("#container").append($("<div>").text(record));
}
そしてちょうどこのコードは、実用よりも楽しいです
someArray.push(someRecord);
// or
someArray(record1, record2, record3....);
通常のArray.pushのようにそれを呼び出す、私は再びプロパティのサブスクリプションを処理するライブラリをお勧めします。
- 1. JavaScriptで配列に項目を動的に追加するにはどうすればよいですか?
- 2. 最初のアイテムが静的に追加され、動的に追加されるアイテムをスピナーに追加するにはどうすればよいですか?
- 3. 要素に新しいクラスを動的に追加するにはどうすればよいですか?
- 4. ブートストラップ:列間に等しい長さの線を追加するにはどうすればよいですか?
- 5. String配列に新しい項目を追加するにはどうすればよいですか?
- 6. 配列と多次元配列のコンテンツをテキストフィールドに動的に追加するにはどうすればよいですか?
- 7. マップに格納された配列に値を追加するにはどうすればよいですか?
- 8. ボタンを押すたびに新しいテキストビューを追加するにはどうすればよいですか?
- 9. Excel:新しいデータが追加されたときに新しい列が自動的に追加されるように列グラフを書式設定するにはどうすればよいですか?
- 10. 2次元の動的長さの配列を作成するにはどうすればよいですか?
- 11. jqueryで動的に追加されたクラスを選択するにはどうすればよいですか?
- 12. 動的コンテンツにjquery ui auto completeを追加するにはどうすればよいですか?
- 13. コントローラに動的に追加された値を送信するにはどうすればいいですか?
- 14. ユーザーがページを更新したときにショッピングカートアイテムが増加しないようにするにはどうすればよいですか?
- 15. gitに追加された新しいファイルを無視するにはどうすればよいですか?
- 16. Application_Startが発生した後、バンドルを動的に追加するにはどうすればよいですか?
- 17. 動的に生成されたdivに動的コンテンツを追加するにはどうすればよいですか?
- 18. カスタマーアカウントのダッシュボードに新しいページを追加するにはどうすればよいですか?
- 19. 動的に追加されたサムネイルにマウスを置いているときにスタイルを追加するにはどうすればよいですか?
- 20. String配列を増分するにはどうすればよいですか?
- 21. 動的に追加されるオブジェクトフィールドの変更をリッスンするにはどうすればよいですか?
- 22. 新しく追加されたコンテンツを数えるためにjQueryウェイポイントプラグインを取得するにはどうすればよいですか?
- 23. PHPシリアル化された配列にデータを追加するにはどうすればいいですか?
- 24. アプリケーションをページに追加するにはどうすればよいですか?
- 25. ページにカスタムタブを追加するにはどうすればよいですか?
- 26. IObservable <int>のアイテムを動的に更新/追加するにはどうすればよいですか?
- 27. 動的HTMLページにダイナミクスを追加するにはどうすればよいですか?
- 28. 列に列を追加するにはどうすればよいですか?
- 29. HTMLページが長くなるたびにイベントをトリガーするにはどうすればよいですか?
- 30. 列と行をasp.net 1.1に動的に追加するにはどうすればよいですか?
AnglesJS(最良の解決策)を見たり、jQueryを使って要素にHTMLを設定するには、$( "span.array_length").html(array_name.length);および 0 ' –
Angular、React、Vueなどのインタラクティブライブラリを使用できます。または、ネイティブのJavaScriptインターバルを使用して、毎回配列を確認してください。 – Mojtaba
これはコードを持つのに役立ちます。文字列を追加する関数はjQueryの '.append()'を使うことができますか? – dhc