非同期通信中に「Now Loading」アニメーションを表示する方法
2010.08.10
error この記事は最終更新日から14年以上が経過しています。
jQuery で非同期通信処理をしている間に「Now Loading」的なアニメーション画像を表示する、というのはよくあるパターンですが、その方法の解説です。
ローディング中の画像を表示するスクリプト
例えば、以下のような html の id="message" の内容を Ajax によって変更したい場合。
<p id="message">ここのメッセージが非同期通信後に変更されます。</p>
<form method="GET" action="#">
<input type="button" value="ここをクリックでメッセージ変更" onclick="ChangeMessage();">
</form>
この時、function ChangeMessage() の中身は通常以下のようになります。
function ChangeMessage(){
$.post(
// 通信先URL
"./message.cgi",
// 送信するデータ
{
hoge:"huga"
},
// 返った結果の処理
function(data){
$("#message").html(data);
}
);
}
で、 message.cgi から結果が帰ってくるまでの間に「Now Loading」的な GIFアニメアイコンなんかを表示したければ、単に $.post (); の直前で、id="message" の中に GIFアニメアイコンを表示するようにすれば良いだけです。
結果が帰ってくれば、id="message" の中身はそのレスポンス内容に変更されますからね。
というわけで、
function ChangeMessage(){
$("#message").html('<img src="loading.gif" width="10" height="10" alt="Now Loading..." />');
$.post(
"./message.cgi",
{
hoge:"huga"
},
function(data){
$("#message").html(data);
}
);
}
みたいな感じの一行を追加すれば良いわけです。
ローディング中の画像の作り方
簡単にローディング中の GIFアニメアイコンを作れるサイトがあったので、ついでにご紹介。
Load Info - gif generator で、色々と Now Loading なアイコンを簡単に作ることができます。
ダッシュボードのパフォーマンス改善:Ajaxとiframeの実践例
2024.12.11
サーバーサイドですべてを処理してから画面を出力するのではなく、データを分割して効率的に表示する手法をご紹介。Ajaxとiframe、それぞれの特徴や実装例をわかりやすく解説します。
contenteditableで作るインライン編集システムとデータ送信の仕組み
2024.12.03
contenteditable属性を利用すれば、HTML内のテキストを直接編集できるインターフェースを構築できます。 本記事では、contenteditableを活用したインライン編集機能の実装手法について解説します。 UIの向上を目指す際の参考として。
セレクトボックスでデータ更新を実現する仕組みと実装例
2024.11.29
「チェックボックスを使ったデータ更新の仕組み」に続く記事として、今回はセレクトボックスを活用したデータ更新の方法をご紹介します。複数の選択肢から値を選び、それをサーバー側に送信して更新する仕組みを、実装例とともに解説します。
チェックボックスでデータ更新を実現する仕組みと実装例
2024.11.27
一覧画面のチェックボックスを用いて、データの状態を即時に更新する仕組みを実装する方法を解説します。HTMLの構造設計からJavaScriptの連携処理、サーバーサイドでの対応まで、説明しています。