質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

4172閲覧

javaScriptで遅延読み込みを行いたい。

a-takahashi

総合スコア48

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2015/09/30 06:21

ブラウザの動作が重くて困っています。
HTMLのtbodyの部分にjavaSciripを用いて行を追加していくプログラムが有ります。
以下のようなイメージです。

HTML

1<table> 2 <tbody> 3 <tr> 4 <th>column</th> 5 <th>column</th> 6 <th>column</th> 7 </tr> 8 </tbody> 9 <tbody> 10 <!-- javaScriptで行を追加 --> 11 </tbody> 12</table>

javascript

1 $.each(tablebodyHTML,function(i,list){ 2 <!-- 配列に格納されたtbody部分のHTML文字列をループでどんどん追加していきます。--> 3 $(tbody).append(list) 4 })

しかし、テーブルに追加するHTMLが非常に多くて、描画にとても時間がかかってしまいます。
特にIE8だとこのページのスクリプトが、webブラウザの実行速度を遅くしています。
という警告文が出るほどです。

そこで、javaScriptを用いて、少しずつ読み込み、描画が行われる、遅延読み込みのような動きをさせることで回避できないかと考えているのですが、
実現することは可能でしょうか?

どなたかアドバイスいただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

どっちかっていうとtbodyへの追加処理よりもtablebodyHTMLの生成処理とかそれをjavascriptのオブジェクトとして持つことのほうがネックになってるんじゃないかという気がします
HTMLは読み込まれたところから表示されるのに対してjavascriptは全部読み込み終わらないと実行されないし、前の実行が終わらないと次のjavascriptが実行されないし、基本的に配列が空き地ありの可変長配列で処理が重いので、lazyloadみたいなつもりでやってるなら逆効果です、あれは画像だから意味があります
視覚効果としてやっているのなら、非表示のtableから中身を順にappendToするとかのほうが多分軽量です
外部ファイルを読み込んでいるという場合は、一旦全部読み込んでからという方法ではなくファイルを1行ずつ取得して1行ずつ処理する方法をとるようにしてみてください

投稿2015/09/30 07:55

編集2015/09/30 08:01
KazuhiroHatano

総合スコア7802

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

list側のデータがどうなってるのか解らないので微妙ですが、件数を絞って出力してまだ続きがあることも情報として返信すれば良いと思います。javascript側では受け取った分を表示した後、続きがあるなら続きを送るようにCallをかけます。
全ての情報が表示されるまでの総合時間は延びますが、徐々に表示できますし、時間当たりの転送量も小さくなります。

確か情報はパケットで小分けにされて送信されているので、大きな塊をCallした場合、必ずしも前方から完成していくとは限りません。だから巨大なデータを読み込み予約しつつ、読み込み終わった部分だけ表示というのは難しいと思います。

投稿2015/09/30 07:09

hirohiro

総合スコア2068

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問