KomputerProgramming

Ajax - conto. Tulisan Ajax

Internet nyedhiyakake manca visibilitas saben sumber sing tuan rumah ing jaringan, lan browser - akses liwat protokol jaringan, mekanisme telpon Tulisan individu, transmisi / reception informasi. Setel kaca sing arupi situs, wis ROOT umum - a link unik (jeneng domain, alamat simpul unik).

Ora ketompo sumber panjaluk kanggo ngunjungi statically utawa mbosenke njedulake nanggepi. Malah yen wangun lan isi kaca gumantung katemton apa waé, unit bagéan saka server komunikasi lan klien (browser) punika document rampung HTML-kode, gambar, gaya sheets, lan file liyane isi perlu lan lingkungan. Yen soko salah, browser nampilake kabeh sing wis "ngatur" kanggo njaluk njlentrehake lan nglakokaké.

Akeh teknologi janjeni wis metu kanggo dangu, nanging wis unjustly lali utawa wis ora dianggo mlaku. AJAX First (conto nggunakake obyek XMLHttpRequest) muncul akeh taun kepungkur, nanging sukses lan fame teka akeh mengko.

Kabeh utawa mung apa sing kudu

Ing versi klasik saka situs - jeneng, IP-alamat lan link a (kabeh Words designating titik sing padha ing papan Internet). Apa dumunung konco kaca utama iki - panginten: ing inisiatif dhewe sing "Desainer" modern, kang durung malah takon apa iku supaya? Apa situs iki kaca utama saka kang sampeyan bisa njaluk liyane? Pilihan iki - cetha ora becik, iku isi tartamtu lan fungsi nyata.

Cukup, yen wong perlu dokter waos, iku alamat tengen kanggo tujuan tartamtu, tinimbang kanggo pawon kanggo surgery lan ora kanggo perpustakaan kanggo terapi rembugan. Ing panggonan kang diaktifake metu, kang sumerep, nanging ora nampa Clinic dental ing lengkap. Paling sing bisa nyana Pengunjung - pendaptaran lan arah (path pas) menyang dhokter. Lan ing titik (ing rawuh) bisa ngganti minangka dokter, lan panggonan.

Nanging ing kene ing situs biasane tansah dimuat ing amunisi lengkap, boten owah-owahan marang loading, njupuk menyang akun wektu sing wong wis teka ... nanging malah ing kasus ngendi iku Clinic urip nyata, pisanan sampeyan ngunjungi klien anyar kanggo menehi kaca informasi cukup , kontak, lan ... pendaptaran jendhela bisa kasedhiya yen neng situs iki rampung sak mati jam, minangka diwènèhaké dening dhokter ora kasedhiya, janjian sauntara digawe ing kantor beda ...

Point ing papan Internet

Tanggepan klasik saka sumber saka papan Internet - nanggepi panjalukan kanggo ngetokake kaca situs (biasane ngarep), lan banjur liyane, ing request saka manca. Situs Server uga ngandhut gambar, gaya, kode JavaScript Tulisan, PHP, lan sapiturute Ora kabeh PHP-file apa kaca, sawetara wong bisa nanggepi panjalukan AJAX :. nampa, proses lan ngirim informasi.

Tulis script sworo seru. Nanging njupuk kanggo titik kontrol ing papan Internet, iku mokal kanggo nemtokake sing lan apa alasan ono, sing aktif iku jeneng, IP-alamat lan link. Sembarang gerakan ing jaringan njupuk Panggonan ing lunak, utamané liwat browser, nanging uga liwat robot asal lan panggonan beda liwat liyane saka tumindak.

Script, gain kontrol, kanthi bisa ngerti mung: riko liwat apa browser manca teka, karo referensi saka kang IP-alamat, lan ing ngarsane saka cookie. Mung sing terakhir bisa nyedhiyani informasi minangka kanggo mbentuk kaca utama, nanging mung yen manca wis wis wis kene. Ing kasus liyane iku bisa kanggo generate mung tanggepan umum saka server. AJAX-conto sing gampang kanggo nggoleki ing internet, kudu digunakake kanthi teliti. Kasalahan ing (nggunakake) saka obyek XMLHttpRequest kanggo trek ora gampang.

Tanggepan sakabèhé lan dialog pribadi

Tanggepan sakabèhé saka server - kaca umum, diarani minangka principal kang disebut indeks, lan wiwit karo situs sing ing rintangan karo pranala menyang kaca liya kasedhiya. Nanging, yen Pengunjung mangerténi jeneng kaca liyane, lagi ing pangerten kang bakal ora kurang penting saka siji ditetepake pangembang. Punika model klasik, kabeh bebarengan: ing rancangan lan fungsi sing fokus ing kabeh pengunjung.

dialog pribadi - terusan saka sesi sadurunge saka manca. Situs wis mangerténi apa iya, piyambakipun wiwit kasengsem ing apa iki viewed kaca lan sijine iku ing memori, wrote soko ing cookie browser.

Iku digunakake loro request dhasar kanggo server kanggo ngundhuh situs lan bisa karo wong: POST lan njaluk. asil pitakonan kaca kabèh. Ing kaca asil, manca bisa ngaktifake utawa liyane acara sing diatur ing tumindak saka unsur kaca tartamtu.

unsur kaca Events

kaca unsur bisa tombol kanggo golek informasi, meaning - kanggo njupuk isi kolom teks lan golek sing wrote Pengunjung. Acara bisa dumadi ing item menu, Gambar, kothak teks. Ing kasus, JavaScript-fungsi bakal mbukak, kang bisa nindakake AJAX-request minangka nderek:

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

Mangkono InitXML () fungsi ditetepake minangka nderek (global var scXHR diterangake njaba fungsi):

fungsi InitXML (scURL) {

scXHR = null;

yen (window.XMLHttpRequest)
{nyoba
{ScXHR = anyar XMLHttpRequest ();
} Nyekel (e) {}
} liya
yen (window.ActiveXObject)
{nyoba
{ScXHR = anyar ActiveXObject ( 'Msxml2.XMLHTTP');
} Nyekel (e)
{nyoba
{ScXHR = anyar ActiveXObject ( 'Microsoft.XMLHTTP');
} Nyekel (e) {}
}
}
yen (scXHR)
{
scXHR.open ( 'njaluk', scURL);
scXHR.onreadystatechange = WaitReplySC;
scXHR.send (null);
};
}

Fungsi iki njupuk URL lan mulai panjalukan kanggo iku. Jawaban bedo bakal sanalika ngabulake script kasebut ing URL (ing ngono - scSrvPhpWord.php, dumunung ing ../Mphp/ folder relatif kanggo ROOT saka situs), lan bakal miwiti WaitReplySC () fungsi, kang dadi kanggo ing input saka server XML-nanggepi, kalebu judhul lan isi.

nanggepi server

Bener server punika PHP-script - program sing wiwit karo instalasi saka kahanan penting, download fasilitas perlu, wis perawatan, kang gumantung ing tujuan pangembang:

Bilik jeneng PhpOffice \ PhpWord;

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

ignore_user_abort (bener);
set_time_limit (12);

nggunakake PhpOffice \ PhpWord \ MphpObj \ scDocuments;

require_once 'PhpOffice / PhpWord / Autoloader.php';
\ PhpOffice \ PhpWord \ Autoloader :: REGISTER ();

Dituduhake awal tandha nuduhake kasalahan sembarang, ngawisi nolak script nalika pangguna log mati lan mranata watesan wektu ing Performing cilik loop - 12 detik. Sabanjure link perpustakaan PhpOffice \ PhpWord dokumen * .docx.

Minangka tampak AJAX-tantangan ( '... cTask = GoPage' + '& cOwnerCode =' + cOwnerCode + '& cSessionCode =' + cSessionCode + '& cActiveItem =' + cActiveItem) - papat GET-variabel, kang bisa uga ora kudu mriksa kasedhiyan nyata:

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

Sawisé aksara tumindak nyamektakaken nemtokaken:

ngalih ($ cTask) {

cilik 'GoPage': // (iki tantangan sak dhisikan download utawa refresh kaca)

$ COwnerCode = 'cOwner';
'CSession' $ CSessionCode =;
$ CContents = 'cContents';
$ CStatus = 'cStatus';
$ CHtml = iconv ( 'UTF-8', 'CP1251', 'werna unsur ");
$ CActiveItem = iconv ( 'UTF-8', 'CP1251', 'variabel');

$ CReply = "scSrvRM | GoPage | pesawat | {$ cOwnerCode}: {$ cSessionCode} | {$ cContents}: {$ cStatus} | {$ cHtml} | {$ cActiveItem}";

break;

}

lan pungkasan saka script:

header ( "Content-Type: teks / xml; nampa-charset = utf-8");
header ( "Cache-Control: ora-cache");
samudayanipun '';
$ CReply = iconv ( 'CP1251', 'UTF-8', $ cReply); // konversi saka 'CP1251' ing 'UTF-8'
kumandhang $ cReply;

Njupuk nanggepi customer

Ing kaca sing dimuat ing browser, iku ketemu sing sanalika server bakal nyiapake nanggepi, iku bakal diproses fungsi WaitReplySC:

dienggo WaitReplySC () {

nyoba {

yen (scXHR.readyState == 4) {
yen (scXHR.status == 200) {// Processing nanggepi

var TestReply = scXHR.responseText;

yen ((TestReply.indexOf ( 'Parse error')> 0) ||
(TestReply.indexOf ( 'Kabar')> 0)) tandha (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]; // server HTML-nanggepi
var cVarValues = aData [6]; // kemungkinan kanggo Forms

ngalih (cCmd) {

cilik 'GoPage':

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

break;
}

} Else {
. Document.getElementById ( 'scAreaStatus') innerHTML = "kesalahan !!!";
}
}
} Nyekel (e) {}

}

Mangkono, nggunakake Ajax-conto, kaca dimuat ing browser diwenehi (ing scTestLine unsur):

Reply = [cOwner, cSession, cContents, cStatus, unsur enkoding nilai global]

Ing perwakilan saka kode, jQuery lan WordPress

Page ing browser lan teks script ditulis ing UTF-8, kanggo nggunakake iconv () fungsi kanggo ngowahi karakter Russian. Liyane saka balung dituduhake dening kode banget prasaja lan bisa gampang bola kanggo maksud apa waé tartamtu.

Subject kanggo ngganti mung ing nanggepi Processing server WaitReplySC () fungsi lan kode script nyata sing ngasilake respon. Telpon fungsi InitXML (kanggo scURL tartamtu lan data cocog kanggo iku) diselehake ing Penanganan acara ing unsur kaca lan netepake makna unsur kasebut.

conto presented saka Ajax-oriented "manual" nggunakake teknologi.

Ing macem-macem sistem manajemen isi (SMS) Kapabilitas sing diterangake ing cara, minangka aturan, ing gaya saka utomo tartamtu. Contone, kemungkinan telpon jQuery AJAX sing temen maujud jQuery.ajax () fungsi ing salah siji tingkat sing luwih dhuwur: jQuery.get () lan jQuery.post (). parameter ditularaké url lan setelan (pesawat saka pasangan Nilai + tombol). jQuery.ajax () ngasilake XMLHttpRequest-barang.

JQuery kanggo trek asil saka fungsi-cara ngajokaken: XHR.done () - completion kasil saka request. XHR.fail () - jawab kesalahan.

jqXHR.done () cara yavlyatsya handler alternatif completion sukses saka Ajax-request. Nggantosaken cara kuna jqXHR.success ().

Kajaba iku, nggunakake ing Wordpress AJAX-teknologi. Kene, kabeh wis implanted dhewe ing sistem manajemen isi, sampeyan mung kudu nggunakake struktur ngajokaken. Dokumen kasedhiya gambaran rinci.

AJAX Aplikasi gumantung ateges ing pribadi milih, senadyan versi manual bisa digunakake ing podo karo utawa saliyane sistem milih isi Manajemen, siji utawa liyane versi jQuery. Sing terakhir iku migunani kanggo bisa ing dhewe, amarga meh kabeh SMS modern nggunakake, nanging saben ing cara dhewe.

Conto klasik saka aplikasi

nggunakake prasaja lan èksponènsial AJAX - Cart nyimpen online. Kaca-kaca nyimpen sing tansah kebak barang, sanadyan ing kasunyatan padha ora bisa. Panyuwunan database biasane njupuk wektu, nanging nalika Pengunjung milih produk, kang tansah bisa mung menehi munggah ing wong utawa ngganti siji milih, sing Situs tansah seng di pengeni kanggo nampilake cepet.

Biasane iku temen maujud ing wangun saka krenjang lan tandha watara item sing dipilih. Tanpa nggunakake owahan dinamis AJAX kanggo unsur iki masalah.

AJAX-Tulisan sing ngleksanakake mekanisme kanggo nambah / mbusak item kanggo cart, dadi de facto ing akeh SMS.

Kanggo transmisi data normal liwat wangun AJAX bisa kawangun ing proses conventional (kanggo ngetik jeneng lan sandhi):


Jeneng:
Sandi:




Mlebu

Kene ngopeni:

dienggo scfWelcomeGo () {

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

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

}

Iku ngirim kanggo server kanggo ndhedhes utawa konfirmasi jeneng Pengunjung lan sandi. Skrip kir informasi ditampa ing meja panganggo, lan dikirim maneh respon ing basis saka kang script cocog nampilake pesen ing kaca (performs tumindak) kanggo kedhaftar, utawa lapuran sing ora pangguna kayata, lan kudu kedhaftar.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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