यह, संक्षेप में, AJAX के लिए क्या है । आपका पृष्ठ लोड होता है, और आप किसी ईवेंट को एक तत्व में जोड़ते हैं। जब उपयोगकर्ता इवेंट को ट्रिगर करने का कारण बनता है, तो कुछ क्लिक करके कहें, आपका जावास्क्रिप्ट सर्वर पर अनुरोध भेजने के लिए XMLHttpRequest ऑब्जेक्ट का उपयोग करता है।
सर्वर के जवाब के बाद (संभवतः आउटपुट के साथ), एक और जावास्क्रिप्ट फ़ंक्शन / ईवेंट आपको उस आउटपुट के साथ काम करने के लिए एक जगह देता है, जिसमें केवल HTML के किसी अन्य टुकड़े की तरह इसे पृष्ठ में चिपका दिया जाता है।
आप इसे सादे जावास्क्रिप्ट के साथ "हाथ से" कर सकते हैं, या आप jQuery का उपयोग कर सकते हैं। आपकी परियोजना के आकार और विशेष स्थिति के आधार पर, यह केवल सादे जावास्क्रिप्ट का उपयोग करने के लिए अधिक सरल हो सकता है।
सादा जावास्क्रिप्ट
इस बहुत ही मूल उदाहरण में, myAjax.php
जब उपयोगकर्ता किसी लिंक पर क्लिक करता है , तो हम एक अनुरोध भेजते हैं । सर्वर कुछ सामग्री उत्पन्न करेगा, इस मामले में "हैलो वर्ल्ड!"। हम आईडी के साथ HTML एलिमेंट में डालेंगे output
।
जावास्क्रिप्ट
function getOutput() {
getRequest(
'myAjax.php',
drawOutput,
drawError
);
return false;
}
function drawError() {
var container = document.getElementById('output');
container.innerHTML = 'Bummer: there was an error!';
}
function drawOutput(responseText) {
var container = document.getElementById('output');
container.innerHTML = responseText;
}
function getRequest(url, success, error) {
var req = false;
try{
req = new XMLHttpRequest();
} catch (e){
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
return false;
}
}
}
if (!req) return false;
if (typeof success != 'function') success = function () {};
if (typeof error!= 'function') error = function () {};
req.onreadystatechange = function(){
if(req.readyState == 4) {
return req.status === 200 ?
success(req.responseText) : error(req.status);
}
}
req.open("GET", url, true);
req.send(null);
return req;
}
HTML
<a href="#" onclick="return getOutput();"> test </a>
<div id="output">waiting for action</div>
PHP
<?php
echo 'hello world!';
?>
इसे आज़माएं: http://jsfiddle.net/GRMule/m8CTk/
एक जावास्क्रिप्ट लाइब्रेरी (jQuery एट अल) के साथ
यकीनन, यह जावास्क्रिप्ट कोड का एक बहुत है। आप ब्लॉक को कड़ा करके या अधिक ट्रिक लॉजिक ऑपरेटरों का उपयोग करके बेशक छोटा कर सकते हैं, लेकिन अभी भी बहुत कुछ चल रहा है। यदि आप अपने प्रोजेक्ट पर इस प्रकार की बहुत कुछ करने की योजना बनाते हैं, तो आप एक जावास्क्रिप्ट लाइब्रेरी के साथ बेहतर हो सकते हैं।
ऊपर से एक ही HTML और PHP का उपयोग करना, यह आपकी पूरी स्क्रिप्ट (पेज पर jQuery के साथ) है। मैंने jQuery की सामान्य शैली के साथ अधिक सुसंगत होने के लिए कोड को थोड़ा कस दिया है, लेकिन आपको यह विचार मिलता है:
function getOutput() {
$.ajax({
url:'myAjax.php',
complete: function (response) {
$('#output').html(response.responseText);
},
error: function () {
$('#output').html('Bummer: there was an error!');
}
});
return false;
}
इसे आज़माएं: http://jsfiddle.net/GRMule/WQXXT/
अभी तक jQuery के लिए जल्दी मत करो: किसी भी लाइब्रेरी को जोड़ना अभी भी आपके प्रोजेक्ट के लिए कोड के सैकड़ों या हजारों लाइनों को जोड़ रहा है जैसे कि आपने उन्हें लिखा था। JQuery लाइब्रेरी फ़ाइल के अंदर, आपको पहले उदाहरण में समान कोड मिलेगा, साथ ही पूरी तरह से अधिक । यह एक अच्छी बात हो सकती है, यह नहीं हो सकता है। योजना, और विस्तार और लक्ष्य पर्यावरण या मंच के लिए अपनी परियोजना के वर्तमान आकार और भविष्य की संभावना पर विचार करें।
यदि यह सब आपको करना है, तो एक बार सादे जावास्क्रिप्ट लिखें और आपका काम पूरा हो जाएगा।
प्रलेखन