Gacha Posted July 27, 2005 Report Posted July 27, 2005 Vajadzīga elementāra lieta, ar XMLhttp funkciju izsaucu urli ar attiecīgajiem parametriem un iegūstu atbildi, šo atbildi nepieciešams apstrādāt šai pašā funkcijā, bet man neizdodas to dabūt, iegūstu vērtību tikai 2x izsaucot funkciju, saprotu, ka kaut kas nav pareizi ar to data, bet kas tieši, nevaru saprast. var data = ''; function bumbum(){ var xmlhttp = false; try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch(e){try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch(e){try { xmlhttp = new XMLHttpRequest();} catch(e){xmlhttp = false;}}} if(!xmlhttp) return null; xmlhttp.open("GET",'atbilde.php',true); xmlhttp.onreadystatechange = function(){if(xmlhttp.readyState==4){data = xmlhttp.responseText}} xmlhttp.send(null); alert(data); return false; }
bubu Posted July 27, 2005 Report Posted July 27, 2005 (edited) Nomaini true trešajā parametrā uz false open() fjai. Edit: kāpēc tā notiek? true - asinhronais izsaukums, alert(data) nostrādās pirms vēl izsaukums beidzies (tb paralēli ar to data = ... responseText. false - sinhronais, kods apstājas, līdz send patiešām beidz darbu. Nu otrs variants - alert(data) linkt iekš tās tavas anonīmās fjas, nevis ārpusē. Kas laikam arī būtu viskorektāk. Edited July 27, 2005 by bubu
Delfins Posted July 27, 2005 Report Posted July 27, 2005 jā, te viss ir OK. izņemot to ka tas alert(data) ir lieks... pieņemu ka tas ir ielikts `debugošanai` izņem, un tālāk viss aizies :) turklāt anonīmo funkciju labāk nomainīt uz kādu referenci, un tad `tā cita` f-ja izdara ko vajag
Gacha Posted July 27, 2005 Author Report Posted July 27, 2005 (edited) alert() ir prieksh debugushanas. Nomainiju open() f-cijai pedejo parametru uz false un nekas nemainaas, tagad pat ar 2x neparadas iegutais teksts. Gribu, lai data mainigajam piešķirtu to vērtību un tālāk es to varētu apstrādāt. Edited July 27, 2005 by Gacha
bubu Posted July 27, 2005 Report Posted July 27, 2005 (edited) Nu tad šitā te, un kamēr driikst_data_aiztikt==false, tad nedriikst aiztikt data: var data = ''; var driikst_data_aiztikt = false; function bumbum(){ ... xmlhttp.open("GET",'atbilde.php',true); xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState==4) { data = xmlhttp.responseText; driikst_data_aiztikt = true; } } xmlhttp.send(null); return false; } vai arī: var data = ''; function bumbum(){ ... xmlhttp.open("GET",'atbilde.php',false); xmlhttp.send(null); data = xmlhttp.responseText; return false; } Edited July 27, 2005 by bubu
Gacha Posted July 27, 2005 Author Report Posted July 27, 2005 He, 2 variants strādā smuki un jauki, bet otrais gan ne.
bubu Posted July 27, 2005 Report Posted July 27, 2005 (edited) He, 2 variants strādā smuki un jauki, bet otrais gan ne. 19948[/snapback] Abi ir otrie? Vienīgais mīnuss otrajam variantam, manuprāt, ja ir lēns internets, tad browseris sastings uz pieprasījuma laiku (tipa nokārsies) :) Tas ir nesmuki. Labāk ir to asinhrono variantu ņemt, lai arī tas nedaudz sarežģītāks.. Edited July 27, 2005 by bubu
Gacha Posted July 27, 2005 Author Report Posted July 27, 2005 Biju domajis, ka 2 strada, bet 1 nee :P Nu nesanāk man izveidot tā kā 1 variantā, jo neizprotu to sistēmu. Varbūt varētu mazu piemēru, bet mazliet apgaismot arī, kas un kapēc.
bubu Posted July 27, 2005 Report Posted July 27, 2005 Nu rekur nelieli piemēri ar abiem pieprasījumiem: http://jpspan.sourceforge.net/wiki/doku.ph...javascript: xmlhttprequest:behaviour://http://jpspan.sourceforge.net/wiki/...quest:behaviour
Gacha Posted July 27, 2005 Author Report Posted July 27, 2005 No tā tava linka dabuju šo linku, kur viss labāk var redzēt to darbībā. tnx bubu
bubu Posted July 27, 2005 Report Posted July 27, 2005 Tikai uzmanīgi - tur ir teksts "Mozilla only" :)
Gacha Posted July 28, 2005 Author Report Posted July 28, 2005 To es pamanīju, bet lietai, kur es izmantošu šo tehniku 99% lietotāji lieto IE. Bik kodu palabojot uzdabūju, ka uz IE arī strādā, tik ir vēl viena problēma - IE kaut ko kešo un tas man neder, jo atbildes var mainīties :/
bubu Posted July 28, 2005 Report Posted July 28, 2005 Šai pašā lapā: http://jpspan.sourceforge.net/wiki/doku.ph...javascript: xmlhttprequest:behaviour://http://jpspan.sourceforge.net/wiki/...quest:behaviour ir sadaļa "HTTP Caching" :)
Gacha Posted July 28, 2005 Author Report Posted July 28, 2005 Pirms 2sec, kad refreshoju shito lapu, pats jau tik tālu biju aizdomajies, un tagad viss strādā, bet galvenais, ka arī izspratu to visu fišku par tiem kalbakiem un kā tas viss strādā.
Recommended Posts