Це, по суті, то , що AJAX є для . Ваша сторінка завантажується, і ви додаєте подію до елемента. Коли користувач спричиняє активацію події, скажімо, клацнувши щось, ваш Javascript використовує об’єкт XMLHttpRequest для надсилання запиту на сервер.
Після того, як сервер відповість (імовірно, з вихідними даними), інша функція / подія Javascript дає вам місце для роботи з цим результатом, включаючи просто вставлення його на сторінку, як будь-який інший фрагмент HTML.
Ви можете зробити це «від руки» за допомогою простого Javascript, або скористатися jQuery. Залежно від розміру вашого проекту та конкретної ситуації, може бути простіше просто використовувати Javascript.
Звичайний Javascript
У цьому дуже базовому прикладі ми надсилаємо запит, myAjax.php
коли користувач натискає посилання. Сервер буде генерувати певний вміст, в цьому випадку "привіт світ!". Ми помістимо в елемент HTML з ідентифікатором output
.
Javascript
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/
З бібліотекою javascript (jQuery et al)
Можна стверджувати, що це багато коду Javascript. Ви можете скоротити це, затягнувши блоки або використовуючи більш стислі логічні оператори, звичайно, але там ще багато чого відбувається. Якщо ви плануєте робити багато подібних речей у своєму проекті, вам може бути краще з бібліотекою javascript.
Використовуючи один і той же 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 ви знайдете подібний код до першого прикладу, а також ще багато іншого . Це може бути добре, а може і ні. Плануйте та враховуйте поточний розмір вашого проекту та майбутні можливості його розширення та цільове середовище чи платформу.
Якщо це все, що вам потрібно зробити, напишіть простий javascript один раз, і все готово.
Документація