EdgarsK Posted September 9, 2009 Report Posted September 9, 2009 Sveiki mani interesē vai XMLhttp var sadalīt pa daļām ? Manā lapā figurē šads kods try {xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { /* */ } xmlhttp.onreadystatechange = function(){ if((xmlhttp.readyState==4)&&(xmlhttp.status==200)){ getForm("log"+id).innerHTML="<br>"+xmlhttp.responseText; } } xmlhttp.open("GET", "?step=console¶m="+id+""); xmlhttp.send(null); Viss strādā veiksmīgi, kods tiek lietots 1x sekundē attiecīgi tas visu laiku tiek piepildīts ar sev vajadzīgo informāciju. Pievienoju vēlvienu šādu kodu (kurš strādā uz onclick eventa, adrese ir cita un id kurā informācija ieiet arī ir cita) attiecīgi try {xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { /* */ } xmlhttp.onreadystatechange = function(){if((xmlhttp.readyState==4)&&(xmlhttp.status==200)){getForm("msgwindow"+id).innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET", "?step=role&x="+id+""); xmlhttp.send(null); Problēma rodas tur, kad tiek ielādēts 2 kods pēc onclick eventa, ļoti bieži gadās kad viņš ielādē pirmā koda saņemtos datus. Ko darīt lietas labā ? Vai nav iespējams kautkā šo visu sadalīt? xmlhttp=newArray; xmlhttp[0]=window.XMLHttpRequest?new .... vai kautkā tamlīdzīgi ? (Paldies jau iepriekš) Quote
0 indoom Posted September 9, 2009 Report Posted September 9, 2009 (edited) Taisi ajax funkciju piem function ajax(get, func) { var xmlhttp; ... xmlhttp.onreadystatechange = function(){if((xmlhttp.readyState==4)&&(xmlhttp.status==200) && typeof func === 'function'){func(xmlhttp.responseText);} }; xmlhttp.open("GET", get); ... } un tad var izsaukt ar ajax("?step=console¶m="+id, function(response) { getForm("log"+id).innerHTML = '<br>'+response; }); Edited September 9, 2009 by indoom Quote
0 codez Posted September 9, 2009 Report Posted September 9, 2009 (edited) jquery ir iebūvēta ajax funkcija $.get('',{step:'role',x:id},function(d){$('#msgwindow'+id).html(d);},'html'); Edited September 9, 2009 by codez Quote
0 xPtv45z Posted September 9, 2009 Report Posted September 9, 2009 xmlhttp jau tur ir vienkāršs mainīgā nosaukums, kam tiek piešķirts objekts. Tu tur praktiski jebko vari rakstīt, tāpat arī veidot masīvu no viņiem. Quote
0 EdgarsK Posted September 11, 2009 Author Report Posted September 11, 2009 (edited) Tātad atradu manuprāt ideālāko variantu (paldies codez) tātad lietoju jquery $("#div").load("?page=1"); bet tagad ir jautājums. es ar index.php js starpniecibu ieladeju off.php ar noraditajiem mainigajiem kur pretim sanjemu Js kodu, bet lai kods darbotos man vinju japatod citai funkcijai kura veido js ar createElement lai Js darbotos. Kā no $("#div").load("?page=1"); es varu padot sanjemtos datus kadai citai funkcijai? Lai taptu skaidrāks, lūk ir mana funkcija kura darbojās līdz šim /* Grimmer */ function Grimmer() { try {xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { /* */ } xmlhttp.onreadystatechange = function(){ if((xmlhttp.readyState==4)&&(xmlhttp.status==200)){ GrimTimer__phraser(xmlhttp.responseText); } } xmlhttp.open("GET", "?auction="+celib); xmlhttp.send(null); setTimeout("Grimmer()",1000); } /* Got source */ function GrimTimer__phraser(inner) { if(!getForm("versusScripts")) { var d=document.createElement("script"); d.type="text/javascript"; d.innerHTML=inner; d.id="versusScripts"; document.body.appendChild(d); }else{ document.body.removeChild(getForm("versusScripts")); GrimTimer__phraser(inner); } } Kas man īsti būtu jādara ar $("#div").load(page); lai varētu izmantot šādu GrimTimer__phraser(sanjemtie_dati);? vai tiešām būtu jātaisa apkārtceļš ? $("#mydiv").load("?kautkas"); GrimTimer_phraser(getForm("mydiv").innerHTML); ? Edited September 11, 2009 by EdgarsA Quote
0 xPtv45z Posted September 11, 2009 Report Posted September 11, 2009 Pēdējais parametrs. http://docs.jquery.com/Ajax/load#urldatacallback Quote
0 EdgarsK Posted September 11, 2009 Author Report Posted September 11, 2009 bet kā tad sanāk $("#div").load("off.php", function(){ alert(); }); tipa nju ielade vaine bet ka es funkcija lai noradu responseText vai kko tadu ? un man jau arii nevajag lai ieladetu kada elementa jo ieladetu tekstu es padodu talak funkcijai nevis kkadam elementam to sakot es domaju kko shadu $(null).load("off.php",function(){GrimTimer__phraser(responseText);} Quote
0 indoom Posted September 11, 2009 Report Posted September 11, 2009 $('#div').load("off.php",GrimTimer__phraser); Quote
0 xPtv45z Posted September 11, 2009 Report Posted September 11, 2009 Tajā linkā jau par to arī ir. :) Funkcijai tu vari pielikt šos 3 parametrus, starp kuriem tad arī ir responseText function (responseText, textStatus, XMLHttpRequest) { this; // dom element } $(null).load("off.php",function(responseText){GrimTimer__phraser(responseText);} Quote
Question
EdgarsK
Sveiki mani interesē vai XMLhttp var sadalīt pa daļām ?
Manā lapā figurē šads kods
Viss strādā veiksmīgi, kods tiek lietots 1x sekundē attiecīgi tas visu laiku tiek piepildīts ar sev vajadzīgo informāciju.
Pievienoju vēlvienu šādu kodu (kurš strādā uz onclick eventa, adrese ir cita un id kurā informācija ieiet arī ir cita) attiecīgi
Problēma rodas tur, kad tiek ielādēts 2 kods pēc onclick eventa, ļoti bieži gadās kad viņš ielādē pirmā koda saņemtos datus.
Ko darīt lietas labā ?
Vai nav iespējams kautkā šo visu sadalīt?
vai kautkā tamlīdzīgi ?
(Paldies jau iepriekš)
8 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.