KompiuteriaiProgramavimas

"Ajax" - pavyzdžiai. Ajax scenarijus

Internetas suteikia lankytojas kiekvieno ištekliaus, kuris vyko tinkle matomumas, ir naršyklės - prieiga per tinklą protokolus, skambučių mechanizmų atskirų scenarijus, perdavimo / priėmimo informacija. Nustatyti puslapių, sudarančių svetainę, turi bendrą šaknį - unikalią nuorodą (domeno vardą, unikalus mazgas adresą).

Nesvarbu išteklių reaguoja aplankyti statiškai arba dinamiškai generuoja atsakymą. Net jei forma ir turinys puslapius nuo jokių sąlygų, nedalomos vienetui komunikacijos serveris ir klientas (naršyklė) yra baigtas HTML koduojami dokumentas, vaizdai, stilių, ir kitus failus reikia turinys ir aplinka. Jei kažkas yra negerai, naršyklė parodo viską, kas "valdo" gauti apdoroti ir vykdyti.

Daug žadančių technologijų atsirado ilgą laiką, tačiau buvo neteisėtai pamiršta arba nebuvo tinkamai naudojami. Pirma, AJAX (pavyzdžiai naudoti XMLHttpRequest objektą) atsirado prieš daugelį metų, tačiau sėkmė ir šlovė atėjo gerokai vėliau.

Viskas arba tik tai, ką reikia

Be klasikinių svetainės versija - pavadinimas, IP-adresą ir nuorodą (visi sinonimai skiriančiosios tą patį tašką interneto erdvėje). Kas slypi už šio pagrindiniame puslapyje - pagalvojau: savo iniciatyva modernų "dizaineris", kuris net nebuvo paklausti, kodėl taip yra? Kodėl svetainė yra pagrindinis puslapis, iš kurio galite patekti į bet kokią kitą? Ši parinktis - akivaizdžiai nėra idealus, jis yra specifinis turinys ir faktinis funkcionalumas.

Paprasčiau tariant, jei asmuo turi odontologą, tai yra teisingas adresas konkrečiam tikslui, o ne dėl operacijos, o ne dėl konsultacijų terapeutas bibliotekoje virtuvėje. Toje vietoje, kur tai vienas paaiškėjo, jis mato, tačiau negauna dantų klinika visiškai. Geriausia, kad gali tikėtis lankytojas - registro ir kryptį (tikslus kelias) į gydytoją. Ir vietoje (atvykus) gali keisti kaip gydytojas, ir paskirties.

Bet čia vietoje paprastai visada pakrautas visiškai šaudmenų, niekas nesikeičia nuo pakrovimo, atsižvelgiant į laiką, kad kas nors ateina ... Bet net ir tuo atveju, kai ji yra realus gyvenimas klinika, pirmą kartą lankotės naują klientą suteikti pakankamai informacijos puslapyje , kontaktai ir ... langas registro gali būti numatyta, kad apsilankymas vietoje buvo padaryta ne piko metu, valandomis, kaip nurodyta gydytojo nėra, laikinas paskyrimas yra pagamintas iš skirtingų biuro ...

Taškas interneto erdvėje

Klasikinis atsakas į interneto erdvę ištekliaus - atsakydamas į prašymą išduoti svetainės puslapyje (paprastai namuose), ir tada kitą, tuo lankytojo pageidavimą. Svetainės serveris taip pat yra vaizdus, stilių, JavaScript kodą scenarijus, PHP, ir tt Ne visi php-failai padaryti puslapius, kai kurie iš jų gali reaguoti į AJAX prašymus :. gauti, apdoroti ir siųsti informaciją.

Parašyti scenarijų akimirksniu. Bet vis į kontrolės interneto erdvės taške, neįmanoma nustatyti, kas ir dėl kokios priežasties spręsti, kad yra suaktyvinta yra pavadinimas, IP adresas ir nuorodą. Bet judėjimas tinkle vyksta programinės įrangos, daugiausia per naršyklę, o taip pat per skirtingos kilmės ir paskirties robotų per kitas svetaines veiksmų.

Scenarijus, įgyti kontrolę, galėtų tiksliai žinoti tik: aplankyti per kokią naršyklę atėjo lankytojas, su nuoroda iš kurio IP adresai, ir slapukų akivaizdoje. Tik pastarasis gali suteikti informacijos, kaip suformuoti pagrindinį puslapį, bet tik tada, jei lankytojas jau čia. Visais kitais atvejais tai galima generuoti tik bendrą atsakymą iš serverio. AJAX pavyzdžiai, kad būtų lengva rasti internete, turėtų būti naudojami atsargiai. Klaidos (naudoti) iš XMLHttpRequest objektą stebėti nėra lengva.

Bendras atsako ir privačiojo sektorių dialogas

Bendras atsako iš serverio - bendra puslapis, vadinama tai, kas yra vadinama indeksas pagrindinės, ir ji pradeda su svetaine, yra nesuderinama su jos sąsajas su kitais turimais puslapiuose. Tačiau, jei lankytojas žino iš kitų puslapių pavadinimus, jie yra jo supratimu bus ne mažiau svarbus nei vienas paskirtas kūrėjas. Čia yra klasikinis modelis, visi iš karto: bendras dizainas ir funkcionalumas, kad pagrindinis dėmesys skiriamas visiems lankytojams.

Privati dialogas - ankstesnės sesijos lankytojo tęsinys. Svetainėje jau žino, ką jis padarė, kad jis buvo įdomu, ką buvo žiūrima puslapį ir įdėti jį į savo atmintį, rašė kažką naršyklės slapukų.

Ji naudojama dviejų pagrindinių prašymą serverio atsisiųsti svetainę ir dirbti su juo: POST ir GET. užklausa rezultatas yra visas puslapis. Rodyti puslapyje, lankytojas gali aktyvuoti šias ar kitus renginius, kurie sukonfigūruoti dėl tam tikrų puslapio elementus veiksmų.

Renginiai puslapis elementai

puslapis elementas gali būti raktas rasti informacijos, prasmę - pažiūrėti į teksto lauko turinį ir suprato, kad tai parašė lankytojas. Renginys gali atsirasti ant meniu elementą, nuotraukos, teksto lauką. Bet kuriuo atveju, JavaScript funkcija bus paleisti, kuris gali atlikti Ajax prašymą taip:

InitXML ( "../ Mphp / scSrvPhpWord.php? CTask = GoPage" + "& cOwnerCode = '+ cOwnerCode
+ '& CSessionCode =' + cSessionCode + '& cActiveItem =' + cActiveItem);

Tokiu būdu InitXML () funkcija yra apibrėžiama taip (kintamasis var scXHR būti aprašyta šalia funkcija):

funkcija InitXML (scURL) {

scXHR = null;

jei (window.XMLHttpRequest)
{pabandyti
{ScXHR = new XMLHttpRequest ();
} Sugavimo (e) {}
} kitur
jei (window.ActiveXObject)
{pabandyti
{ScXHR = nauja ActiveXObject ( "Msxml2.XMLHTTP ');
} Sugavimo (e)
{pabandyti
{ScXHR = nauja ActiveXObject ( "Microsoft.XMLHTTP ');
} Sugavimo (e) {}
}
}
jei (scXHR)
{
scXHR.open ( "GET", scURL);
scXHR.onreadystatechange = WaitReplySC;
scXHR.send (nulis);
};
}

Ši funkcija trunka URL ir inicijuoja prašymą jį. Asinchroninis atsakymas ateis greičiau, kaip bus įvykdyti iš scenarijaus, nurodyto URL (šiuo atveju - scSrvPhpWord.php, įsikūręs ../Mphp/ aplanko palyginti su šaknies vietoje), ir pradės WaitReplySC () funkciją, kuri eina prie serverio XML atsako įvestį, įskaitant pavadinimą ir turinį.

atsako serveris

Tiesą sakant serveris PHP-scenarijus - programa, kuri prasideda nuo esminių sąlygų montavimo, atsisiųsti reikiamas patalpas, prieš pradedant gydymą, kuris priklauso nuo programuotojo tikslais:

vardų PhpOffice \ PhpWord;

ini_set ( "display_errors ', 1);
error_reporting (E_ALL ^ E_NOTICE);

ignore_user_abort (true);
set_time_limit (12);

naudoti PhpOffice \ PhpWord \ MphpObj \ scDocuments;

require_once 'PhpOffice / PhpWord / Autoloader.php';
\ PhpOffice \ PhpWord \ Sunkvežimis :: Registruotis ();

Atstovavo ženklo nurodant klaidas pradžią, draudžia sustoti scenarijų, kai wyloguje ir nustato terminą, kaip atlikti atvejo kilpa - 12 sekundžių. Kitą saitą biblioteka PhpOffice \ PhpWord dokumentams * .docx.

Kaip parodyta pirmiau AJAX iššūkis ( "... cTask = GoPage" + "ir cOwnerCode = '+ cOwnerCode +", ir cSessionCode =' + cSessionCode + ", ir cActiveItem = '+ cActiveItem) - keturių Get-kintamieji, kurie gali būti turėtų patikrinti savo tikrąjį prieinamumą:

$ CTask = (isset ($ _ GET [ 'cTask']))? $ _GET [ 'cTask']: '';
$ COwnerCode = (isset ($ _ GET [ 'cOwnerCode']))? $ _GET [ 'cOwnerCode']: '';
$ CSessionCode = (isset ($ _ GET [ 'cSessionCode']))? $ _GET [ 'cSessionCode']: '';
$ CActiveItem = (isset ($ _ GET [ 'cActiveItem']))? $ _GET [ 'cActiveItem']: '';

Atlikęs parengiamuosius veiksmus scenarijų nusprendžia:

jungiklis ($ cTask) {

atvejis "GoPage ': // (tai yra per pradinį atsisiųsti iššūkis arba atnaujinkite puslapį)

$ COwnerCode = 'cOwner ";
$ CSessionCode = 'cSession ";
$ CContents = 'cContents ";
$ CStatus = 'cStatus ";
$ Naudojant žymėjimo kalbą = iconv ( "UTF-8 ',' CP1251", "kodavimo elementas");
$ CActiveItem = iconv ( "UTF-8 ',' CP1251", "kintamieji");

$ CReply = "scSrvRM | GoPage | rinkinį | {$ cOwnerCode}` {$ cSessionCode} | {$ cContents} `{$ cStatus} | {$ Chtml} | {$ cActiveItem}";

pertrauka;

}

ir galutinis dalis scenarijų:

antraštės ( "Content-Type: text / xml; priimti-charset = UTF-8");
antraštės ( "Talpyklos valdymas: nėra-cache");
echo " ';
$ CReply = iconv ( "CP1251", "UTF-8 ', $ cReply); // konversijos iš "CP1251" in "UTF-8 '
echo $ cReply;

Kelionė klientų atsakymą

Puslapyje įdėto naršyklėje, buvo nustatyta, kad kuo greičiau serveris bus parengti atsakymą, jis bus tvarkomi funkcija WaitReplySC:

veikti WaitReplySC () {

pabandyti {

jei (scXHR.readyState == 4) {
jei (scXHR.status == 200) {// atsakas apdorojimas

var TestReply = scXHR.responseText;

jei ((TestReply.indexOf (parse error ")> 0) ||
(TestReply.indexOf ( "Pranešimas")> 0)) perspėjimas (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]; // serveris HTML atsakymą
var cVarValues = Adata [6]; // kintamieji formų

jungiklis (cCmd) {

atvejis "GoPage ':

var dTestLine = document.getElementById ( "scTestLine ');
dTestLine.innerHTML = 'Atsakyti = [' + cOwnerCode + ","
+ CSessionCode + ","
+ CContent + ","
+ CStatus + ","
+ CHTML + ","
+ CVarValues + ']';

pertrauka;
}

} {Kita
. Document.getElementById ( "scAreaStatus) innerHTML =" Klaida !!! ";
}
}
} Sugavimo (e) {}

}

Taigi, naudojant AJAX pavyzdžių, puslapis yra pakrautas naršyklėje gauti (iš scTestLine elementą):

Atsakyti = [cOwner, cSession, cContents, cStatus, elementai, koduojanti kintamą vertes]

Dėl kodo, jQuery ir WordPress atstovavimo

Puslapis naršyklėje ir scenarijaus tekstas, parašytas UTF-8, NAUDOTI iconv () funkcija konvertuoti Rusijos simbolių. Iš skeleto atstovaujamos kodas poilsio yra labai paprasta ir gali būti lengvai pakartoti bet kokiai konkrečiai paskirčiai.

Duomenys gali keistis tik atsakant apdorojimas serverio WaitReplySC () funkciją ir faktinis programinį kodą, kuris generuoja atsakymą. Ragina InitXML funkcija (tam tikros scURL ir atitinkamų duomenų IT) dedami į renginių tvarkytojų ant puslapio elementus ir nustatyti šių elementų prasmę.

Pateikti pavyzdžiai AJAX orientuotas į "vadovas" technologijų naudojimas.

Įvairiose turinio valdymo sistema (SMS) pajėgumus yra aprašyti įvairiais būdais, kaip taisyklė, atsižvelgiant į tam tikrą specifiką stilių. Pavyzdžiui, JQuery, AJAX skambučių galimybių realizuoti jQuery.ajax () funkcijos arba aukštesnio lygio: jQuery.get () ir jQuery.post (). Parametras perduodamas URL ir nustatymus (rinkinys klavišas + vertės porų). jQuery.ajax () grąžina XMLHttpRequest-objektą.

"JQuery stebėti siūlomų funkcinėje metodų rezultatus: XHR.done () - sėkmingą prašymo. XHR.fail () - apdorojimo klaidų.

jqXHR.done () metodas yavlyatsya alternatyva strėle sėkmingai užbaigus AJAX-užklausos. Pakeičia senas jqXHR.success () metodą.

Be to, dėl WordPress AJAX technologijos naudojimas. Čia viskas implantuoti save turinio valdymo sistemą, jums reikia naudoti tik siūlomą struktūrą. Dokumentai pateikiami išsamų aprašymą.

AJAX taikymas iš esmės priklauso nuo pasirinktų priemonių, nors vadovas versija gali būti naudojama lygiagrečiai arba kartu su pasirinktu turinio valdymo sistema, vienas ar kitas jQuery versija. Pastarasis yra naudinga dirbti savarankiškai, nes beveik visi modernus SMS jį naudoti, bet kiekvienas savaip.

Klasikinis pavyzdys taikymo

Paprasta ir eksponentinio naudojimas AJAX - krepšelis internetinė parduotuvė. Patalpink puslapiai visada alsuoja prekių, nors iš tikrųjų jie gali būti. Perkrovimo paprastai užtrunka nemažai laiko, bet kai lankytojas pasirenka produktą, jis visada galite tiesiog mesti jam arba pakeisti pasirinktą vieną, kad svetainė yra visada pageidautina greitai rodomi.

Paprastai jis yra realizuotas krepšių ir ženklų visame pasirinktų daiktų formą. Be AJAX dinamiškų pokyčių naudoti šių elementų yra problemiškas.

Ajax scenarijus, kad įgyvendinti mechanizmus, pridėti / pašalinti elementus į savo krepšelį, tapo de facto yra daugelyje SMS.

Normaliai duomenų perdavimo per AJAX forma gali būti sudaryta įprastu būdu (įvesti vardą ir slaptažodį):


Vardas:
Slaptažodis:




Prisijunkite

Čia prižiūrėtojas:

veikti scfWelcomeGo () {

var CNAME = document.fWelcome.cName.value;
var cPass = document.fWelcome.cPass.value;

InitXML ( "../ Mphp / scSrvPhpWord.php? CTask = CheckWelcome"
+ '& CNAME =' + CNAME
+ '& CPass =' + cPass);

}

Ji perduoda į serverį patikrinti lankytojo vardą ir slaptažodį. Scenarijus patikrina gautą vartotojo stalo informaciją ir siunčia atgal atsakymą apie kurių pagrindu atitinkama scenarijus rodo pranešimą puslapyje (atlieka veiksmą) Registruotiems vartotojams arba praneša, kad Tokio vartotojo nėra, ir turi būti registruojamas.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 lt.birmiss.com. Theme powered by WordPress.