
通常は一部でも変更が加わるとページの全てを再読み込みしますが、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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ajaxで携帯のカメラ
-
この言葉おしえて!3
-
CGIカレンダー
-
HTMLファイルにテキストファイ...
-
DirectXとOpenGLはどちらが動作...
-
HTML、CGI、Java、JavaS...
-
visualwave(smalltalk言語ソフ...
-
ローカルでのhtmlチェックにつ...
-
CGIなしでサーバにファイルをア...
-
Python3, Flask, Jinja2などで...
-
カウントダウンを表示
-
フォームを自分のコンピュータ...
-
マピオン・ラボの地図はドラッ...
-
ASP.NET(VB)VBソースからJavas...
-
Response.Write(変数)
-
サーブレットから送られてきた...
-
CGIみたいなJAVA
-
呼び出し元のURLを知りたいのです
-
wininet.dllのInternetOpenの同...
-
Javascriptの変数をPHPに
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ajax後、php,mysqlも一部再読み...
-
cakePHP+Ajax アップロード状...
-
mysqlのsql文
-
readyState確認後の処理ができない
-
【JavaScript】confirmのボタン...
-
jsonテキストデータの並び替え...
-
ASP.NET(VB)VBソースからJavas...
-
HTMLでDBからデータを表形式で...
-
ajaxでhtmlを返して画面に描画…...
-
DirectXとOpenGLはどちらが動作...
-
saved from url=(0013)abou
-
テーブルで作った表をボタン操...
-
呼び出し元のURLを知りたいのです
-
リンクを押すとEXEファイルを実...
-
sleepの負荷
-
webシステムでchrome
-
php ob_flushが全く動作しない
-
【Ajax】改行を含めたデータを...
-
読み込み中に「Now Loading」を...
-
ローカルネットワーク内での502...
おすすめ情報