ziedinjsh Posted March 18, 2013 Report Share Posted March 18, 2013 (edited) Sveiki. Ir tāda lieta, ka vajadzētu pārbaudīt vai nav iekš datubāzes jauni ieraksti. Izmeiģināju šādi. ul - li sarakstā ar jquery paņem pēdējo ieraksta id un pārbauda vai nav jaunāks(-ki), ja ir tad updeito sarakstu. Strādā, bet protams tikai manā klientu pusē, ne citiem. jQuery: jQuery(function(){ var lastid = jQuery('ul#update > li:first').attr('class'); setInterval(function(){ jQuery.get('process/public.php?w=check&id='+lastid, function(data){ if(data){ jQuery('#update').load(location.href+' #update'); } }); },5000); }); php: if($w=='check'){ $last = mysql_fetch_array(mysql_query("select pid from public order by pid desc LIMIT 0,1")); if($last['pid']==$id){ echo 'success'; } } Kā varētu panāk to lai viņš pieprasīju veic kaut kā ar php, lai saraksts apdeitojas visiem? Paldies jau iepriekš. Edited March 18, 2013 by ziedinjsh Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 18, 2013 Report Share Posted March 18, 2013 AJAX ar intervālu vai web soketi. Quote Link to comment Share on other sites More sharing options...
ziedinjsh Posted March 18, 2013 Author Report Share Posted March 18, 2013 nu man jau ir it kā ar intervālu, bet es domāju kā pārbaudīt to visās klientu pusēs.. šādi viņš trādā tikai manis atvērtajā browserī.. ja es kko ierakstīšu.. citiem viņš neatjaunos sarakstu. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 18, 2013 Report Share Posted March 18, 2013 Visos broveros ar AJAX ik pēc noteikta laika pieprasi jaunākos ierakstus no datubāzes. Quote Link to comment Share on other sites More sharing options...
webi Posted March 18, 2013 Report Share Posted March 18, 2013 nu man jau ir it kā ar intervālu, bet es domāju kā pārbaudīt to visās klientu pusēs.. šādi viņš trādā tikai manis atvērtajā browserī.. ja es kko ierakstīšu.. citiem viņš neatjaunos sarakstu. Kas ir - "ja es kko ierakstīšu"? Tavs norādītais datu update kods ir ok. Ir nianses, ko varētu uzlabot, bet būtu jāstrādā, ja pēc "ja es kko ierakstīšu" tiek atjaunota db. Quote Link to comment Share on other sites More sharing options...
ziedinjsh Posted March 18, 2013 Author Report Share Posted March 18, 2013 nu kā, nopostojot tekstu, ievadās datubāzē, jquery sākumā no ul paņem pēdējo li kurā ir pēdēja datubāzes ieraksta id un tad salīdzina to iekš php faila kur viņš pārbauda vai ir kaut kas jaunāks par šo pēdējo id, ja ir tad viņš veic ul apdeitu. Sēžot savā brovserī viņš to izdara, bet ieejot citā brovserī un ar citu lietotāju viņš to neizdara Quote Link to comment Share on other sites More sharing options...
ziedinjsh Posted March 18, 2013 Author Report Share Posted March 18, 2013 (edited) tad vaina būs php kodā $last = mysql_fetch_array(mysql_query("select pid from public order by pid desc LIMIT 0,1")); if($last['pid'] != $id){ echo 'update'; } pie jquery pārbaudes koda pieliku alert(); lai zināt cik bieži viņš čeko, bet tagad viņš viņu visu laiku čeko.. vaig vai nevaig Edited March 18, 2013 by ziedinjsh Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 18, 2013 Report Share Posted March 18, 2013 ko nozīmē vajag vai nevajag? tev taču ir setInterval, tas nozīmē, ka jeburā gadījumā pēc noteikta skaita sekunžu viņš mēģināts reloadot. Ja sapratu, tad tu gribi, lai ajax "sēž mierā" kamēr PHP nav padevis šim, ka ir jauni dati.. Es gan nezinu kā to īstenot un vai vispār tā vienkārši var. Quote Link to comment Share on other sites More sharing options...
ziedinjsh Posted March 18, 2013 Author Report Share Posted March 18, 2013 (edited) nu tā.. rezultāts bija ļoti tuvu.. jquery funkcijā: vieta kur iegust pedējo id vajag ielikt iekš intervāla funkcijas.. tagad viss trādā ka bija nepieciešams rezultāts jQuery: jQuery(function(){ setInterval(function(){ var lastid = jQuery('ul#update > li:first').attr('class'); jQuery.get('process/public.php?w=check&id='+lastid, function(data){ if(data){ jQuery('#update').load(location.href+' #update'); alert(data); // pārbaudei jQuery('#test').html(data+'<br> id='+lastid); //pārbaudei } }); },5000); }); PHP: $last = mysql_fetch_array(mysql_query("select pid from public order by pid desc LIMIT 0,1")); if($last['pid'] != $id){ echo 'update'; } jQuery atjauno sarakstu tikai tad jau ir kaut kas jaunāks par pēdējo sarakstā norādīto id. Tagad vis trādā kā nākas.. Bez liekas vajadzības saraksts netiek atjaunots. Edited March 18, 2013 by ziedinjsh Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 18, 2013 Report Share Posted March 18, 2013 > Es gan nezinu kā to īstenot un vai vispār tā vienkārši var. Atkārtoju — web soketi. Quote Link to comment Share on other sites More sharing options...
ziedinjsh Posted March 18, 2013 Author Report Share Posted March 18, 2013 nebūs pagaidām nepieciešams, šis variants ar strādā Quote Link to comment Share on other sites More sharing options...
anonīms Posted March 18, 2013 Report Share Posted March 18, 2013 > Es gan nezinu kā to īstenot un vai vispār tā vienkārši var. Atkārtoju — web soketi. paļdies, palasīšos Quote Link to comment Share on other sites More sharing options...
xPtv45z Posted March 18, 2013 Report Share Posted March 18, 2013 Var arī ko tādu ar ajax panākt, ar Long polling - http://en.wikipedia.org/wiki/Comet_%28programming%29 bet nu pats es viņus izmantotu, tikai tad, ja kaut kādu iemeslu dēļ web socketus nevarētu izmantot. Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted March 18, 2013 Report Share Posted March 18, 2013 paļdies, palasīšosarī es... kā gan es to varēju nezināt? Bet lūk tā:A secure version of the WebSocket protocol is implemented in Firefox 6 (named MozWebSocket), Google Chrome 14, Opera 12.10 and Internet Explorer 10.laikam vairs nevajadzēs risinājumus ar flash. Quote Link to comment Share on other sites More sharing options...
codez Posted March 18, 2013 Report Share Posted March 18, 2013 (edited) arī es... kā gan es to varēju nezināt? Bet lūk tā:laikam vairs nevajadzēs risinājumus ar flash. Visērtākais risinājums šim ir socket.io ar node.js Bibliotēka pati izvēlas, kuru metodi izmantot, atkarībā no tām, kas pieejamas, sākot ar websocket, flašu un beidzot ar longpollingu. Ejošu čatu var dabūt gatavu padsmit minūtēs un ies uz visām kaut cik mūsdienās lietotām platformām. Supported browsersDesktop Internet Explorer 5.5+ Safari 3+ Google Chrome 4+ Firefox 3+ Opera 10.61+ Mobile iPhone Safari iPad Safari Android WebKit WebOs WebKit Edited March 18, 2013 by codez Quote Link to comment Share on other sites More sharing options...
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.