2009-10-02 8 views
74

AJAXの本質は何ですか?たとえば、ユーザーがこのリンクをクリックすると、現在のページを再読み込みせずに一部の情報がサーバーに送信されるように、ページ上にリンクを設定したいとします。それはAJAXですか?AJAXはどのように機能しますか?

私はisoframesを使ってこの動作を得ることができました。より詳細には、小さなアイソフレームにリンク(小さな画像と言う)を入れます。ユーザーがこのリンクをクリックすると、ブラウザはisoframe内のページのみをリロードします。

しかし、私はそれが目標に到達するエレガントな方法ではないと思います。私はAJAXを使わなければならないと思う。どのように機能するのですか? XHTMLの使い方は、考慮した問題を優雅な方法で解決できますか? JavaScriptを使用する必要がありますか?

私はあまり必要ありません。私はちょうど(クリック後)いくつかの情報をサーバに送った小さなリンクを持っていたい。私は、メッセージの近くに「スターイメージ」があるとしましょう。ユーザーがスターをクリックすると、スターは色と私のサーバー更新データベースを変更します(ユーザーがメッセージを気に入ることを覚えておいてください)。

+8

必須リンク:http://en.wikipedia.org/wiki/Ajax_(programming) –

+0

答えのリンクをご覧ください: http://www.w3schools.com/php/php_ajax_intro。 asp –

答えて

1

これはajaxです。 javascriptなしでajaxを使用することはできません。 jqueryとプロトタイプの例を見て、使用法のアイデアを得てください。

+0

いくつかの情報源に基づいて、VBScriptでAJAXを実行できます。しかし、それを行う良い理由はありません。 :-) – Nosredna

+0

いいえ、できません。あなたはVBScriptでAVAXを行うことができます。 –

+6

Heh。 AJAXはAsynchronous JavaScriptとXMLだと聞きました。それは非同期である必要はありませんが、JavaScriptである必要はなく、XMLである必要はありません。 – Nosredna

0

あなたがしようとしていることは、技術的にはajaxです。 Ajaxは、ページのセクションを更新するためのxhtmlフラグメントトランザクションを作成します。 Javascriptはこれらのリクエストを素敵できちんとしたものにします。

5

AJAXは非同期JavascriptとXMLの略です。 AJAXは、ページ全体をサーバーに戻すことなく、ページの部分的な更新をサポートします。

AJAXにはたくさんのオプションがあります。最も注目すべき2つは、MicrosoftのASP.NET AJAX(旧Atlas)とjQueryです。

ASP.NET ASP.NETに精通している場合は、ASP.NET AJAXは比較的簡単にセットアップできます。 jQueryは、JavaScriptをすでに知っていて、ページのクエリや更新をきめ細かく制御できる場合に便利です。

HTH

+1

XHTMLではなく、XMLですか? – Nosredna

+0

@ノスレッドナ:はい。 – Stardust

17

AJAXは、一般的に、ページ全体をリロードせずに、クライアントからサーバにHTTPリクエストを送信し、サーバーの応答を処理する必要。 (非同期に)。

Javascriptが一般的に提出を行い、サーバーからのデータ応答(伝統的にXML、JSONなどの、しばしば他のより少ない冗長形式)を受信

Javascriptが、ユーザーのビューを更新するために、動的ページのDOMを更新することができます。

「Asychronous Javascript and XML」

その他のオプションとして、Flashやアプレットなどのページをリロードせずにユーザーのビューを更新することもできますが、これらはあなたの場合に適したソリューションとは言えません。 Javascriptのような音が行く方法です。このサイトでは、jQueryのような良いライブラリのサポートがたくさんありますので、実際に多くのJavascriptを書く必要はありません。

あなたのページは、ウェブを閲覧し、 ユーザーが他のことをやっている間に、独自のコンテンツを更新することができます。

+0

私はこの答えが好きです。 @Verrtexあなたが知る必要があることは、XMLHttpRequestに関することです。 – enguerran

15

AJAXの本質はこれです。

つまり、JavaScriptは非同期GETとPOSTリクエスト(通常はXMLHttpRequestオブジェクト経由)を送信し、それらのリクエストの結果を使用してページを変更します(Document Object Model操作による)。

+0

私はこの "自分で更新する"が実際に見られる場所を手で考えることができます。 –

13

Ajaxは、ページの一部をリロードするだけではありません。 AjaxはAsynchronous Javascript and Xmlの略です。

必要なAjaxの唯一の部分は、XMLHttpRequestのjavascriptのオブジェクトです。あなたはdivや他のタグとしてあなたのhtmlの小さな部分を読み込んでリロードするためにそれを使用しなければなりません。

exampleを読むと、思ったより早くプロになります!

<html> 
<body> 

<script type="text/javascript"> 
function ajaxFunction() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else if (window.ActiveXObject) 
    { 
    // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
else 
    { 
    alert("Your browser does not support XMLHTTP!"); 
    } 
xmlhttp.onreadystatechange=function() 
{ 
if(xmlhttp.readyState==4) 
    { 
    document.myForm.time.value=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET","time.asp",true); 
xmlhttp.send(null); 
} 
</script> 

<form name="myForm"> 
Name: <input type="text" name="username" onkeyup="ajaxFunction();" /> 
Time: <input type="text" name="time" /> 
</form> 

</body> 
</html> 
+1

名前にもかかわらず、AJAXはXMLを必要としませんが、AJAXという単語のXは歴史的にサーバーとクライアントの間で通信する方法なので、XMLを表します。 – enguerran

109

あなたは(非同期JavaScriptとXMLの略)AJAXとは全く初めて使用する場合は、WikipediaのAJAXエントリは良い出発点である:

DHTMLとLAMPのように、AJAXではありません技術そのものではなく、技術のグループです。 AJAXは、

  • のマークアップと スタイリング情報の組み合わせを使用します。
  • JavaScriptで にアクセスしたDOM は、表示された情報を と動的に表示して対話します。
  • ブラウザとサーバー間でデータを非同期で交換するために、 はページリロードを回避します。 XMLHttpRequest(XHR)オブジェクトは通常 ですが、代わりにIFrameオブジェクト または動的に追加されたタグが です。
  • データのフォーマット がブラウザに送信されます。一般的なフォーマット には、XML、あらかじめフォーマットされたHTML、平文 テキスト、およびJavaScript Object Notation (JSON)が含まれます。このデータは という形で動的に作成することができます。 サーバー側のスクリプトです。

ご覧のとおり、純粋な技術的観点から見ると、本当に新しいものはありません。 AJAXのほとんどの部分は1994年に既に存在していました(XMLHttpRequestオブジェクトの場合は1999)。本物の新規性は、これらの部品をと合わせてとGoogleがGMail(2004)とGoogle Maps(2005)で行ったように使用することでした。実際、両サイトはAJAXのプロモーションに大きく貢献しました。

クライアントとリモート・サーバ、ならびに古典的AJAX駆動アプリケーションとの間の差との間の通信を示す図以下、千個の言葉の価値がある画像:

alt text

オレンジ部分については、手ですべてを行うことができます(XMLHttpRequestオブジェクトを使用)。jQueryPrototypeYUIなどの有名なJavaScriptライブラリを使用して、アプリケーションのクライアント側を「AJAXify」することができます。このようなライブラリは、JavaScript開発の複雑さ(例えば、ブラウザ間の互換性)を隠すことを目指していますが、単純な機能では過度のものになる可能性があります。サーバー側で

(あなたは、Javaを使用している場合、例えばDWRまたはRAJAX)を、いくつかのフレームワークは、あまりにも助けることができますが、あなたがする必要があるのは、部分的にページを更新するだけで必要な情報を返すサービスを公開するために、基本的です(最初はXML/XHTMLとして - AJAXのXですが、今日はJSONがよく使われます)。

1

あなたが興味を持っている場合、IBMは、アヤックスの10(おそらくそれ以上)の一部のシリーズがあります。Mastering Ajax part 1

数年古いもののを、今、それは(あなただけの最初の部分を読んであっても!)、良いイントロです

私は、サイトのは、現時点では私のために少し遅いながらも全シリーズは、Hereリストされるべきだと思う...

概要:

HTML、JavaScript™テクノロジ、DHTML、およびDOMで構成されるAjaxは、厄介なWebインターフェイスをインタラクティブなAjaxアプリケーションに変換する際に役立つ優れたアプローチです。 Ajaxのエキスパートである著者は、これらのテクノロジーがどのように連携して動作するかを、概要から詳細な外観まで、非常に効率的なWeb開発を容易に実現する方法を示しています。彼はまた、XMLHttpRequestオブジェクトを含むAjaxの中心的な概念を発表しました。ウィキペディアへ

関連する問題