Համակարգիչներ, Ծրագրավորում
Ajax - օրինակները. ajax սցենարներ
Համացանցի միջոցով այցելուն տեսանելիության յուրաքանչյուր ռեսուրս, որը հյուրընկալվել է ցանցում, եւ browser - ի միջոցով մատչելիություն ցանցային արձանագրությունների, Զանգի մեխանիզմների առանձին սցենարներ, Փոխանցման տուփ / ընդունելության տեղեկատվության. Էջերի, որոնք կազմում են կայքը, ունի ընդհանուր արմատ մի եզակի կապը (դոմեյն անուն, եզակի հանգույցի հասցեն).
Անկախ նրանից, թե այդ ռեսուրսը արձագանքում է այցելել statically կամ դինամիկ առաջացնում է պատասխան: Եթե նույնիսկ ձեւը եւ բովանդակությունը էջերում կախված է ցանկացած պայմաններում, անբաժանելի միավորի կապի սերվերի եւ հաճախորդի (բրաուզերի) է ավարտված HTML կոդավորված փաստաթուղթ, պատկերների, ոճի թերթ, եւ այլ ֆայլեր անհրաժեշտ բովանդակության եւ շրջակա միջավայրի. Եթե ինչ-որ բան սխալ է, որ բրաուզերը ցուցադրում այն ամենը, ինչ «հաջողվել» է ստանալ վերլուծել եւ կատարել:
Շատ խոստումնալից տեխնոլոգիաներ են ի հայտ է երկար ժամանակ, բայց արդեն անարդարացիորեն մոռացված կամ չեն օգտագործվում ինչպես հարկն է: Առաջին AJAX (օրինակ օգտագործել XMLHttpRequest օբյեկտը) հայտնվել է մի քանի տարի առաջ, սակայն հաջողությունը եւ համբավը եկավ շատ ավելի ուշ:
Բոլոր կամ միայն այն, ինչ դուք պետք է
Ի դասական տարբերակի կայքում անունով, որ IP- հասցեով եւ հղում (բոլորը հոմանիշներ նշանակել է այդ նույն կետին ինտերնետ-տարածության): Ինչ է ընկած ետեւում այս հիմնական էջում - մտածեց իրենց սեփական նախաձեռնությամբ է ժամանակակից «դիզայներ», որը նույնիսկ չի էլ հարցնում, թե ինչու է այդպես: Թե ինչու է կայքը հիմնական էջ է, որը դուք կարող եք ստանալ որեւէ այլ. Այս տարբերակը, հստակորեն չի իդեալական, դա այն կոնկրետ բովանդակության եւ փաստացի ֆունկցիոնալությունը:
Պարզապես, եթե անձը պետք է ատամնաբույժի, դա ճիշտ հասցեն, կոնկրետ նպատակի համար, այլ ոչ թե խոհանոցում վիրաբուժության եւ ոչ թե գրադարան խորհրդակցության թերապեւտ: Այն վայրում, որտեղ այս մեկը պարզվեց, որ նա տեսնում է, բայց չի ստանում ատամնաբուժարան ամբողջությամբ. Լավագույնը, որ կարող է ակնկալել մի այցելու - ի գրանցամատյանը եւ ուղղությունը (ճշգրիտ ճանապարհը) բժշկի. Եւ տեղում (ժամանելիս) կարող է փոխվել բժշկի, եւ նպատակակետ:
Բայց ահա կայքը սովորաբար միշտ բեռնված է ամբողջ զինամթերք, ոչինչ չի փոխում վրա բեռնման, հաշվի առնելով այն ժամանակը, որ ինչ - որ մեկը եկել ... Բայց նույնիսկ այն դեպքում, երբ դա իրական կյանքն կլինիկա, որ առաջին անգամ եք այցելել նոր հաճախորդին տալ բավարար տեղեկատվական էջը , շփումները, եւ ... պատուհանը ռեեստրի կարող է տրամադրվել, որ այցը կայքում արվել է ոչ աշխատանքային ժամերին, սահմանված կարգով բժշկի հասանելի չէ, ժամանակավոր նշանակումը կատարվում է տարբեր գրասենյակում ...
Բանն այն է, որ ինտերնետ տարածության
Ի դասական արձագանքը ռեսուրսի ինտերնետ տարածության ի պատասխան խնդրանքի թողարկելու կայքը էջը (սովորաբար տուն), եւ ապա մյուս, խնդրանքով այցելուի: Կայքի սերվերը նույնպես պարունակում պատկերները, ոճերի, JavaScript կոդը սցենարներ, PHP, եւ այլն, ոչ բոլոր PHP-ֆայլերը անել էջերը, նրանցից ոմանք կարող են արձագանքել AJAX հարցումներին :. ստանալու, գործընթացը եւ ուղարկել տեղեկատվություն:
Գրել է մի սցենար մի շառաչ. Բայց ստանում է կետի վերահսկողության ինտերնետային տարածության, դա անհնար է որոշել, թե ով եւ ինչ պատճառներով հասցեագրված, որ ակտիվացված է այն անունը, որ IP հասցե եւ հղում. Ցանկացած շարժում է ցանցի տեղի է ունենում ծրագրային, հիմնականում միջոցով բրաուզերի, այլեւ միջոցով ռոբոտների տարբեր ծագման եւ նպատակակետ միջոցով այլ կայքեր գործողության.
Script, ձեռք բերել վերահսկողություն, կարող է ճշգրտորեն, թե միայն: այցը միջոցով, թե ինչ բրաուզերը այցելուն եկավ, մի հղում, որը IP տրվել, եւ ներկայությամբ բլիթները: Միայն վերջինս կարող է տրամադրել տեղեկատվություն, ինչպես նաեւ ձեւավորել հիմնական էջը, բայց միայն այն դեպքում, եթե այցելուն արդեն եղել են այստեղ: Մյուս բոլոր դեպքերում դա հնարավոր է առաջացնում միայն ընդհանուր պատասխան է սերվերի. AJAX-օրինակները, որոնք հեշտ է գտնել ինտերնետում, պետք է օգտագործվի զգուշորեն: Սխալները (օգտագործման), որ XMLHttpRequest օբյեկտի հետեւելու հեշտ չէ.
Ընդհանուր առմամբ պատասխանը եւ մասնավոր երկխոսությունը
Ընդհանուր առմամբ, հաստատել սերվերի - մի ընդհանուր էջի, անդրադարձել է նաեւ տնօրենի, ինչ կոչվում է ցուցանիշը, եւ այն սկսվում է մի վայրում, որը դեմ է իր հղումներ դեպի այլ էջերում առկա. Սակայն, եթե այցելուն գիտի անունները այլ էջերում, նրանք իր հասկացողությամբ չի լինի ոչ պակաս կարեւոր է, քան մեկ նշանակված մշակողի. Այստեղ է դասական մոդելը, բոլորը միանգամից վրա `ընդհանուր առմամբ նախագծում եւ ֆունկցիոնալությունը, որը կենտրոնանում է բոլոր այցելուների համար:
Անձնական երկխոսությունը - ի շարունակությունն է նախորդ նստաշրջանի ընթացքում այցելուի: Կայքն արդեն գիտի, թե ինչ արեց, որ նա եղել է հետաքրքրում, թե ինչ դիտվել էջը եւ դրեց այն իր հիշողության մեջ, գրել ինչ - որ բան բրաուզերի բլիթները:
Այն օգտագործվում է երկու հիմնական խնդրանքը սերվերի ներբեռնել կայքը եւ աշխատել նրա հետ: Ամսաթիվ եւ. հարցում արդյունքն այն է, մի ամբողջ էջ: Ին արդյունքում էջում, այցելուն կարող է ակտիվացնել այս կամ այլ միջոցառումներ, որոնք կազմաձեւված են գործողության որոշակի էջում տարրերի.
Միջոցառումներ էջ տարրեր
էջ տարրը կարող է լինել բանալին գտնել տեղեկատվություն, իմաստ - վերցնել բովանդակությունը տեքստային դաշտ, եւ գտնում են, որ դա գրել է այցելուին: Միջոցառումը կարող է առաջանալ մի ընտրացանկի տարրը, նկարի, տեքստում տուփի. Ցանկացած դեպքում, JavaScript ֆունկցիան կլինի առաջադրվելու, որը կարող է կատարել AJAX-խնդրանքը հետեւյալն է.
InitXML ( «../ Mphp / scSrvPhpWord.php. CTask = GoPage '+' & cOwnerCode = '+ cOwnerCode
+ '& CSessionCode =' + cSessionCode + '& cActiveItem =' + cActiveItem);
Այսպիսով, InitXML () ֆունկցիան սահմանվում են հետեւյալ կերպ (փոփոխական Var scXHR է բնութագրել դուրս ֆունկցիայի):
ֆունկցիա InitXML (scURL) {
scXHR = Null.
եթե (window.XMLHttpRequest)
{փորձեք
{ScXHR = նոր XMLHttpRequest ();
} Catch (ե) {}
} ուրիշ
եթե (window.ActiveXObject)
{փորձեք
{ScXHR = Նոր ActiveXObject ( 'Msxml2.XMLHTTP');
} Catch (ե)
{փորձեք
{ScXHR = Նոր ActiveXObject ( 'Microsoft.XMLHTTP');
} Catch (ե) {}
}
}
եթե (scXHR)
{
scXHR.open ( «ՍՏԱՆԱԼ ', scURL);
scXHR.onreadystatechange = WaitReplySC.
scXHR.send (Null);
};
}
Այս ֆունկցիան տեւում է URL- ը եւ նախաձեռնում խնդրանքը դրա համար: Asynchronous Պատասխանը կգա շուտ կկատարի սցենար նշված է հղում (այս դեպքում `scSrvPhpWord.php, որը գտնվում է ../Mphp/ թղթապանակի հարաբերական արմատին կայքում), եւ կսկսվի WaitReplySC () ֆունկցիան, որը գնում է մուտքային սերվերի XML-պատասխան, այդ թվում `անվանումը եւ բովանդակությունը.
սերվերի պատասխանը
Իրականում սերվերը PHP-script - մի ծրագիր, որը սկսվում է տեղադրման էական պայմանների, բեռնել անհրաժեշտ հարմարությունները, նախընտրական բուժում, որը կախված է մշակողի նպատակներով:
Անվանատարածք 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 :: ռեգիստր ();
Ներկայացվող սկիզբը նշանների նշելով, որեւէ սխալներ, արգելում կանգնեցնում է մի սցենար, երբ օգտագործողը տեղեկամատյանները դուրս եւ սահմանում է սահմանված ժամկետից իրականացնող գործի LOOP - 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' coding տարրը ");
$ CActiveItem = iconv ( 'UTF-8 »,« cp1251', 'փոփոխականների');
$ CReply = "scSrvRM | GoPage | սահմանել | {$ cOwnerCode}` {$ cSessionCode} | {$ cContents} `{$ cStatus} | {$ chtml} | {$ cActiveItem}».
կոտրել;
}
եւ եզրափակիչ մասն է սցենարի:
header ( «Բովանդակություն-Type: տեքստային / XML, ընդունում-կոդավորում = UTF-8");
header ( «Cache-Control: ոչ-cache");
echo ' XML Նամակ Մեսսենջեր = "1.0" կոդավորում = "UTF-8"?>';
$ CReply = iconv ( 'cp1251', 'UTF-8, $ cReply) // դարձի է «cp1251 'եւ' UTF-8 '
Էխո $ cReply.
Getting հաճախորդների պատասխան
Ին էջում, որը բեռնված է բրաուզերի, պարզվել է, որ շուտով, քանի որ սերվերը կպատրաստի պատասխան, ապա դա կարող է մշակվում ֆունկցիան 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] .Պառակտում ( ' `');
cOwnerCode = aOwnerSession [0];
var cSessionCode = aOwnerSession [1].
var aContentStatus = adata [4] .Պառակտում ( ' `');
var cContent = aContentStatus [0];
var cStatus = aContentStatus [1].
var chtml = adata [5]. // սերվերի HTML պատասխան
Var cVarValues = adata [6]. // փոփոխականների համար ձեւերի
անջատիչ (cCmd) {
գործը GoPage »:
var dTestLine = փաստաթուղթ.ստանալՏարրԸստԻնքնության ( 'scTestLine');
dTestLine.innerHTML = 'Պատասխանել = [' + cOwnerCode + ','
+ CSessionCode + ','
+ CContent + ','
+ CStatus + ','
+ Chtml + ','
+ CVarValues + ']';
կոտրել;
}
} Այլ {
. Փաստաթուղթ.ստանալՏարրԸստԻնքնության ( 'scAreaStatus') innerHTML = "Սխալ !!!».
}
}
} Catch (ե) {}
}
Այսպիսով, օգտագործելով Ajax-օրինակները, էջը բեռնված է բրաուզերում ձեռք բերել (ի scTestLine տարր):
Պատասխանել = [cOwner, cSession, cContents, cStatus, տարրեր կոդավորում փոփոխական արժեքները]
Ին ներկայացուցչության կոդը, jQuery եւ WordPress
Էջ է բրաուզերի եւ սցենարի տեքստը գրված են UTF-8, օգտագործման համար iconv () ֆունկցիայի է փոխարկել ռուսական նիշ. Մնացած է կմախքի ի դեմս օրենսգրքի շատ պարզ է եւ կարող է հեշտությամբ կրկնվել որեւէ կոնկրետ նպատակի համար.
Ենթակա է փոփոխման միայն այն մշակման սերվերի պատասխան WaitReplySC () ֆունկցիայի եւ փաստացի սցենարի կոդը, որը առաջացնում է պատասխան: Կոչ է անում InitXML գործառույթը (համար որոշակի scURL եւ համապատասխան տվյալների այն), որոնք տեղադրվում են միջոցառման handlers էջում տարրերի եւ սահմանել իմաստը այդ տարրերի.
Ներկայացված օրինակները AJAX-կողմնորոշված "Manual" տեխնոլոգիայի օգտագործումը:
Տարբեր բովանդակության կառավարման համակարգի (SMS) կարողությունները նկարագրված են տարբեր ձեւերով, որպես կանոն, ի ոճով մի կոնկրետ որոշակի առանձնահատկություններ: Օրինակ, jQuery AJAX զանգերի հնարավորությունները, որոնք իրականացվում jQuery.ajax () գործում է կամ ավելի բարձր մակարդակի վրա: jQuery.get () եւ jQuery.post (). Պարամետր, որը փոխանցվում URL եւ պարամետրերը (շարք առանցքային + արժեքի զույգերով): jQuery.ajax () վերադարձնում XMLHttpRequest-օբյեկտ:
JQuery է հետեւել արդյունքները առաջարկվող ֆունկցիան մեթոդների: XHR.done () - ի հաջող ավարտը խնդրանքով: XHR.fail () - սխալ բեռնաթափման.
jqXHR.done () մեթոդը yavlyatsya այլընտրանքային handler հաջող ավարտը AJAX-խնդրանքով. Փոխարինում հնացած jqXHR.success () մեթոդը:
Նմանապես, օգտագործումը վրա Վորդպրես AJAX տեխնոլոգիաների. Այստեղ, ամեն ինչ փոխպատվաստված իրեն է բովանդակության կառավարման համակարգի, դուք միայն պետք է օգտագործել առաջարկվող կառուցվածքը: Այն փաստաթղթերը տրամադրել մանրամասն նկարագրությունը:
AJAX Դիմում կախված էապես է ընտրված գործիքների, թեեւ ձեռնարկը տարբերակը կարող է օգտագործվել զուգահեռ կամ ի լրումն, ընտրված բովանդակության կառավարման համակարգի, մեկ կամ մեկ այլ տարբերակի jQuery. Վերջինս օգտակար է աշխատել իրենց սեփական, քանի որ գրեթե բոլոր ժամանակակից SMS օգտագործել այն, սակայն յուրաքանչյուրը իր սեփական ճանապարհով.
Դասական օրինակ է դիմումի
Պարզ եւ էքսպոնենտալը օգտագործման AJAX - Զամբյուղը օնլայն խանութ. խանութ էջերը միշտ լցված ապրանքների, թեեւ իրականում դրանք չեն կարող լինել: Վերաբեռնումը սովորաբար տեւում է զգալի ժամանակ, բայց երբ այցելուն ընտրում է ապրանքը, նա կարող է միշտ էլ պարզապես հրաժարվել է նրա վրա, կամ փոխել ընտրված մեկը, որ կայքը միշտ ցանկալի է դրսեւորել արագ.
Սովորաբար դա իրականացվում է ձեւով զամբյուղներ եւ նշանների շուրջ ընտրված տարրերից. Առանց օգտագործման AJAX դինամիկ փոփոխությունների այդ տարրերի խնդրահարույց է:
AJAX-սցենարներ, որոնք իրականացնում են մեխանիզմներ են ավելացնել / հեռացնել տարրեր ձեր զամբյուղի մեջ, դարձավ դե ֆակտո բազմաթիվ SMS- ի.
Նորմալ տվյալների փոխանցման միջոցով AJAX ձեւով կարող է ձեւավորվել մեկ պայմանական եղանակով (մտնելու համար անունը եւ գաղտնաբառը):
Similar articles
Trending Now