通常は一部でも変更が加わるとページの全てを再読み込みしますが、ajaxを利用すると、変更を加えた部分だけが再読み込みされるところまでは理解しています。
分からないところは、各プログラムへの動作がajaxを使った後の場合と通常の場合ではどのように違うのかです。
下記のような考え方で正しいですか?説明が下手で読みにくく申し訳ないですが、アドバイスをいただけたら嬉しいです。お願いします。
■htmlは、実行を起こした部分を含めその子要素全てが再読み込みの対象に。
例えば、↓の<div#ajax>~</div>この間にある子要素の全てが再読み込みされる。それ以外のhtmlやcssは再読み込みされない。
■cssは、htmlと同じで、その部分で使われているcssが対象。
■javascriptは、ajaxの場合と通常の場合で違いはなく、常に全てが再読み込みされる(外部ファイル、記述の位置に関係なく)。
■jquery、php、mysqlも、javascriptと同じで何一つ変わりなく通常通りに動く。
<?php
・includeで外部ファイルを取得
・様々な処理
・mysqlに接続して様々な処理
?>
<html>
<head>
<script type="text/javascript" src="外部ファイルでajaxを記述"></script>
<title></title>
</head>
<body>
<?php
・様々な処理
?>
<div id="main">
<div id="a">
<dl>~</dl>
</div>
<div id="ajax" onclick="ajaxの処理へ">
<table>~</table>
<ul>~</ul>
その他様々な処理
</div>
<p>~</p>
<img src="">
</div>
<script type="text/javascript">
</script>
</body>
</html>
No.1ベストアンサー
- 回答日時:
こんにちは。
何も難しく考えることはなく、読み込んだ対象のみ処理されると考えれば良いのではないでしょうか。
例えば例のPHPであれば<?php ?>内の処理はアクセスされた時にサーバ側で処理をしてHTMLとして返します。
その時外部のCSSやJavaScriptを読み込みます。
次にonclickでAjaxの処理が走った場合、例えばJSONデータを読み込んで<div id="ajax"></div>に表示するような処理の場合はそのJSONのみ読み込みます。
(他は何も変わらない)
なのでそのJSONを表示する処理で利用するCSSはそこで同時に任意のCSSを動的に設定するか、もともと読み込んだCSSに含まれていないと適用されないと思います。
上の方でおこなっているmySQLへ接続したりetcは実行されません。
言葉で説明するのが難しく伝わらなかったらすみません。
いろんなサイトをみていてDOMを配列として取得し、それをcheckajax()のinnerHTMLで入れ込んだ時に
valueしか取得していなくてinnerHTMLに入れただけでちゃんとできるのか、
再度phpとmysqlが動くのはvar URLクエリストリングを指定しているので通常通りに動くのですか。
あと、「全13件、1ページ目」といったものがあり5ページ目を押すとajaxを使ってなかったり
他の部分では使ってたり…なぜ全てにajaxを使わないのか、何か欠点があるのでは?と疑問ばかりあります。
<div id="ccc">
<select onchenge="ajax()" id="dom0">
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
<ul onclick="ajax()" id="dom1">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
function クロスブラウザ対策{
}
function ajax(){
domdata = getdom();
var dom0 = domdata[0];
var dom1 = domdata[1];
var URL = "同じページのURLに?以降に配列domdataを指定";
dom = クロスブラウザ対策();
dom.onreadystatedom = checkajax;
dom.open("GET", URL, true);
dom.send(null);
document.getElementById("ccc").innerHTML = "読み込み中";
}
function checkajax(){
if (dom.readyState == 4 && dom.status == 200) {
var domlist = dom.responseText;
document.getElementById("ccc").innerHTML = domlist;
} else {
return;
}
}
function getdom(){
var domdata = new Array();
domdata[0] = document.getElementById("dom0").value;
domdata[1] = document.getElementById("dom1").value;
return domdata;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFを(htmlのように)無限に縦...
-
入力フォームの値をQRコードで...
-
バッチファイル 特定ウインドウ...
-
正規表現で、特定の文字列を含...
-
ワードでA3横の画面にして、文...
-
1枚の画像をクリックすると複数...
-
VBAユーザーフォーム内に別のシ...
-
GASでスプレッドシートの一番上...
-
ダブルクリックと2回クリックの...
-
JQuery、セレクトボックスをル...
-
php コールバック関数
-
PYTHONのtkinterについて
-
VBA
-
http://ww12.ktai.pw/というサ...
-
ナイトボットのAliasについて
-
これってなんの電話かわかりま...
-
VBAでクイズゲームの作り方
-
以下のURL入れますか?皆さんは↓
-
画像のドットの部分が抜けてい...
-
Chinapost こよパズルどう動か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLの中に&があると&に変...
-
ajax後、php,mysqlも一部再読み...
-
CGIなのにIE8のときキャッシュ...
-
DirectXとOpenGLはどちらが動作...
-
非同期式3進カウンタ
-
【JavaScript】confirmのボタン...
-
saved from url=(0013)abou
-
HTMLでDBからデータを表形式で...
-
ASP.NET(VB)VBソースからJavas...
-
ajaxでhtmlを返して画面に描画…...
-
呼び出し元のURLを知りたいのです
-
jsonテキストデータの並び替え...
-
sleepの負荷
-
リンクを押すとEXEファイルを実...
-
JSTLを利用してJavascriptの結...
-
ブラウザ閉じたらサーバー処理...
-
PHPで一定時間が経過すると処理...
-
データ受け渡しについて
-
ローカル用HTMLファイルの安全...
-
非道式6進カウンタと非同期式10...
おすすめ情報