Компјутери, Програмирање
Ајакс - примери. Ајакс скрипти
Интернетот дава на посетителот видливоста на секој ресурс кој е хостиран во мрежа и интернет пребарувач - пристап преку мрежни протоколи, механизми повик на индивидуални скрипти, пренос / прием на информации. Група на страници кои го сочинуваат сајт, има заеднички корен - уникатна врска (име на домен, уникатен јазол адреса).
Без разлика на ресурси реагира во посета на статички или динамички генерира одговор. Дури и ако формата и содржината на страници зависи од било какви услови, неделива единица на комуникација серверот и клиентот (интернет пребарувач) е готов HTML-кодирани документи, слики, стилови, и други датотеки потребни содржини и животната средина. Ако нешто не е во ред, прелистувачот ги прикажува сите што се "успеа" да се анализира и да се изврши.
Многу ветувачки технологии се појавија за долго време, но биле неправедно заборавени или не се користи правилно. Прво AJAX (примери користат XMLHttpRequest објектот) се појави пред многу години, но на успех и слава дојде многу подоцна.
Сите или само она што ви треба
Во класичната верзија на сајтот - име, IP-адреса и линк (сите синоними именување на истата точка во интернет просторот). Она што лежи зад оваа главна страница - помислив: на сопствена иницијатива модерна "дизајнер", што дури и не прашуваат зошто е тоа така? Зошто на сајтот е главната страница, од кои може да се добијат со било кој друг? Оваа опција - јасно е дека не е идеална, тоа е од одредена содржина и вистински функционалност.
Едноставно кажано, ако лицето има потреба од стоматолог, тоа е вистинската адреса за одредена цел, а не на кујна за операција, а не во библиотеката за консултации терапевт. На местото каде што ова се покажа, тој гледа, но не добива стоматолошка амбуланта во целост. Најдоброто што може да се очекува некој посетител - во регистарот и насока (точната патека) на лекар. И на лице место (на пристигнување) може да се промени како лекар, и дестинација.
Но, тука е местото обично секогаш е ставена во полна муниција, ништо не се менува при товарење, земајќи ги во предвид времето што некој дојде ... Но, дури и во случај кога тоа е клиника во реалниот живот, за прв пат ќе ја посетите нов клиент да им даде доволно информации за страната , контакти и ... регистар на прозорецот може да се обезбеди дека посетата на сајтот е направено во текот на оф-часа, како што е пропишано од страна на лекар не е достапен, привремено именување е направен во различни канцеларија ...
Точка во интернет просторот
Класичен одговор на ресурс на интернет просторот - како одговор на барањето за издавање на сајт страница (обично дома), а потоа и другите, по барање на посетителот. Мапа на серверот, исто така, содржи слики, стилови, JavaScript код скрипти, PHP, итн Не сите PHP-датотеки направи страници, некои од нив може да се одговори на барањата на AJAX :. да се добие, процес и испраќаат информации.
Напиши скрипта кине. Но, да дојдеме до точка на контрола во интернет просторот, не е возможно да се утврди кој и од кои причини се обрати, што се активира е име, IP-адреса и линк. Секое движење на мрежата се одвива во софтвер, главно преку интернет пребарувач, но исто така и преку роботи од различно потекло и дестинација преку други сајтови на дејствување.
Скрипта, се здобијат со контрола, може точно да се знае само: посета преку она што пребарувач дојде на посетителот, со повикување од кои IP адреси, и присуството на колачиња. Само таа може да обезбеди информации за да се формира на главната страница, но само ако посетителот е веќе тука. Во сите други случаи, тоа е можно да се генерира само општ одговор од серверот. AJAX-примери кои се лесно да се најде на интернет, треба да се користи внимателно. Грешки во (употреба) на објектот XMLHttpRequest да ги пратите не е лесно.
Целокупниот одговор и приватниот дијалог
Целокупниот одговор од серверот - заедничка страна, се нарекува директорот на она што се нарекува индекс, и таа започнува со веб-сајт што е во спротивност со неговите врски до други страници на располагање. Меѓутоа, ако посетителот знае имињата на други страници, тие се во неговото разбирање ќе биде не помалку важно од еден определен инвеститорот. Тука е класичен модел, сите одеднаш: целокупниот дизајн и функционалност, кој се фокусира на сите посетители.
Приватниот дијалог - продолжение на претходната седница на посетителот. Веб-страницата веќе знае што го правеше тоа, дека тој е заинтересиран за она што се гледа страница и го стави во неговата меморија, напиша нешто во прелистувачот колачиња.
Тоа се користи два основни барање до серверот за да ја преземете сајт и да работат со него: пост и да добијат. резултат на барањето е целата страница. На страницата со резултатите, посетителот може да ги активира овие или други настани кои се конфигурирани на дејството на одредени елементи од страната.
страница елементи Настани
страница елемент може да биде клучот за да најдете информации, што значи - да се земе содржината на полето за текст и да се најде кој го напишал еден посетител. Настанот може да се случи на менито, слика, текст кутија. Во секој случај, го вклучите Javascript-функција ќе се кандидира, кои можат да вршат AJAX-барање, како што следува:
InitXML ( '../ Mphp / scSrvPhpWord.php? CTask = GoPage' + '& cOwnerCode =' + cOwnerCode
+ '& CSessionCode =' + cSessionCode + '& cActiveItem =' + cActiveItem);
Така, функцијата InitXML () е дефиниран како што следува (var променлива scXHR да се опише надвор од функција):
функција InitXML (scURL) {
scXHR = нула;
ако (window.XMLHttpRequest)
{обидат
{ScXHR = нова XMLHttpRequest ();
} Фати (д) {}
} друго
ако (window.ActiveXObject)
{обидат
{ScXHR = нови ActiveXObject ( 'Msxml2.XMLHTTP');
} Фати (д)
{обидат
{ScXHR = нови ActiveXObject ( 'Microsoft.XMLHTTP');
} Фати (д) {}
}
}
ако (scXHR)
{
scXHR.open ( "добие", scURL);
scXHR.onreadystatechange = WaitReplySC;
scXHR.send (null);
};
}
Оваа функција го URL-то и иницира барање за тоа. Асинхрони одговорот ќе дојде веднаш штом ќе ги исполни скриптата наведена во URL-то (во овој случај - scSrvPhpWord.php, кој се наоѓа во папката ../Mphp/ релативно коренот на сајтот), а на функцијата ќе почне WaitReplySC (), на влезот на кој ќе оди на серверот XML-одговор, вклучувајќи го и насловот и содржината.
одговор од серверот
Всушност серверот е PHP скрипта - програма со која започнува со поставување на основните услови, преземете потребните објекти, предтретман, што зависи од потребите на инвеститорот:
именски простор PhpOffice \ PhpWord;
ini_set ( 'display_errors', 1);
error_reporting (E_ALL ^ E_NOTICE);
ignore_user_abort (вистинска);
set_time_limit (12);
користете PhpOffice \ PhpWord \ MphpObj \ scDocuments;
require_once 'PhpOffice / PhpWord / Autoloader.php';
\ PhpOffice \ PhpWord \ autoloader :: Регистрирај се ();
Претставен на почетокот на знак што покажува какви било грешки, се забранува запирање на сценариото кога корисникот се најавува исклучување и поставува временски рок за вршење случај јамка - 12 секунди. Следниот линк библиотека PhpOffice \ PhpWord за документи * .docx.
Како што е прикажано погоре AJAX-предизвик (... cTask GoPage = "+" и cOwnerCode = '+ cOwnerCode + "и cSessionCode =' + cSessionCode +" и cActiveItem = '+ cActiveItem) - четири се-променливи, кои не може да биде треба да се провери нивната вистинска достапност:
$ CTask = (isset ($ _ GET [ 'cTask']))? $ _GET [ 'cTask']: '';
$ COwnerCode = (isset ($ _ GET [ 'cOwnerCode']))? $ _GET [ 'cOwnerCode']: '';
$ CSessionCode = (isset ($ _ GET [ 'cSessionCode']))? $ _GET [ 'cSessionCode']: '';
$ CActiveItem = (isset ($ _ GET [ 'cActiveItem']))? $ _GET [ 'cActiveItem']: '';
По извршувањето на скриптата за подготвителни активности одлучи:
прекинувач ($ cTask) {
случај "GoPage": // (ова е предизвик за време на почетните преземање или освежување на страница)
$ COwnerCode = 'cOwner;
$ CSessionCode = 'cSession;
$ CContents = 'cContents;
$ CStatus = 'cStatus;
$ Chtml = iconv ( 'UTF-8', 'cp1251', 'кодирање елемент ");
$ CActiveItem = iconv ( 'UTF-8', 'cp1251', 'променливи');
$ CReply = "scSrvRM | GoPage | сет | {$ cOwnerCode}` {$ cSessionCode} | {$ cContents} `{$ cStatus} | {$ chtml} | {$ cActiveItem}";
скрши;
}
и завршниот дел на сценариото:
заглавие ( "Content-Type: text / XML; прифати-charset = utf-8");
заглавие ( "Кеш-контрола: no-cache");
ехо '
$ CReply = iconv ( 'cp1251', 'UTF-8', $ cReply); // конверзија од 'cp1251 "во" UTF-8'
echo $ cReply;
Прв клиент одговор
На страница, која е натоварена во прелистувачот, беше откриено дека штом сервер ќе подготви одговор на тоа, тоа ќе бидат обработени функција WaitReplySC:
функционира WaitReplySC () {
пробајте {
ако (scXHR.readyState == 4) {
ако (scXHR.status == 200) {// обработка на одговор
var TestReply = scXHR.responseText;
ако ((TestReply.indexOf ( "Грешка при анализирање ')> 0) ||
(TestReply.indexOf ( "Известување ')> 0)) на алармирање (scXHR.responseText);
var CDATA = scXHR.responseText;
var aData = cData.split ( '|');
var cCmd = aData [1];
var cPos = aData [2];
var aOwnerSession = aData [3] .split ( ' `');
cOwnerCode = aOwnerSession [0];
var cSessionCode = aOwnerSession [1];
var aContentStatus = aData [4] .split ( ' `');
var cContent = aContentStatus [0];
var cStatus = aContentStatus [1];
var chtml = aData [5]; // сервер HTML-одговор
var cVarValues = aData [6]; // варијабли за форми
прекинувачот (cCmd) {
случај "GoPage ':
var dTestLine = document.getElementById ( 'scTestLine');
dTestLine.innerHTML = 'Одговор = [' + cOwnerCode + ','
+ CSessionCode + ','
+ CContent + ','
+ CStatus + ','
+ CHTML + ','
+ CVarValues + ']';
скрши;
}
} Else {
. Document.getElementById ( "scAreaStatus) innerHTML =" Грешка !!! ";
}
}
} Фати (д) {}
}
Така, со користење на AJAX-примери, страната е натоварена во прелистувачот добие (во scTestLine елемент):
Одговори = [cOwner, cSession, cContents, cStatus, елементи шифрира променлива вредности]
На претставувањето на код, jQuery и WordPress
Страница во прелистувачот и текст на скрипта напишана во UTF-8, за функцијата употреба iconv () за да конвертирате Руски карактери. Остатокот од скелетот претставена со код е многу едноставна и може лесно да се повтори за некоја посебна намена.
Предмет на промена само во одговор на серверот обработка WaitReplySC () функцијата, и вистинскиот код скрипта која генерира одговор. Повици функција InitXML (за одредена scURL и релевантни податоци за тоа) се сместени во настан ракувачи на елементите на страната и се дефинира значењето на овие елементи.
Презентирани примери на AJAX-ориентирани на "рачно" употреба на технологијата.
Во различни за управување со содржини (SMS) способности се опишани во различни начини, како по правило, во стилот на одредена специфичност. На пример, jQuery AJAX можности повик се реализираат jQuery.ajax () функции во или на повисоко ниво: jQuery.get () и jQuery.post (). Параметарот се пренесува url и поставките (збир на клучни парови + вредност). jQuery.ajax () враќа XMLHttpRequest-објект.
JQuery за следење на резултатите на предложените функцијата методи: XHR.done () - успешното завршување на барањето. XHR.fail () - справување со грешки.
jqXHR.done () метод yavlyatsya алтернатива управувачот успешното завршување на AJAX-барање. Заменува застарен метод jqXHR.success ().
Слично на тоа, употребата на на Вордпрес AJAX технологија. Тука, сè има се вградува во системот за управување со содржини, ќе треба да користите предложената структура само. Документите обезбедени детален опис.
AJAX апликација битно зависи од избраниот алатки, иако во упатството верзија може да се користи паралелно или во прилог на одбраната на системот за управување со содржини, една или друга верзија на jQuery. Последново е корисно да се работи на свој, бидејќи речиси сите модерни SMS го користат, но секој на свој начин.
А класичен пример за апликација
Едноставен и експоненцијална користење на AJAX - кошничката онлајн продавница. продавница страници се секогаш полни со стока, иако во реалноста тие не може да биде. Претовар обично трае доста време, но кога некој посетител ќе избира производ, тој секогаш може само да се откажат од него или да го промените избраник, дека сајтот е секогаш пожелно да се прикаже побрзо.
Обично тоа се реализира во форма на кошеви и ознаки околу избраните предмети. Без употреба на AJAX динамични промени на овие елементи е проблематична.
AJAX-скрипти кои спроведување на механизми за да додадете / отстраните артикли во Вашата кошничка, стана де факто во многу СМС.
За нормална пренос на податоци преку AJAX форма може да се формира на конвенционален начин (за внесување на име и лозинка):
<Форма име = акција "fWelcome '=' index.php" метод = "пост">
<Внесете тип = "text" име = 'CNAME "вредност = scWelcomeField" title = "Име" style =' '' id = "лево: 56px; врвот: 8px; ">
<Внесете тип = "text" име = 'cPass "вредност =' 'id =" scWelcomeField "title =" Лозинка "style =" лево: 56px; top: 31px; ">
Форма>
Еве управувачот:
функционира scfWelcomeGo () {
var CNAME = document.fWelcome.cName.value;
var cPass = document.fWelcome.cPass.value;
InitXML ( '../ Mphp / scSrvPhpWord.php? CTask = CheckWelcome'
+ '& CNAME =' + CNAME
+ '& CPass =' + cPass);
}
Се пренесува на серверот за да се провери име и лозинка на посетителот. Сценариото го проверува информациите добиени во табелата на корисникот, и ја праќа назад одговор врз основа на кој надлежниот скрипта прикажува порака на оваа страница (врши акција) за регистрирани корисници, или извештаи дека нема таков корисник, и треба да бидат регистрирани.
Similar articles
Trending Now