Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
geek
HV kasutaja
liitunud: 07.04.2004
|
24.12.2012 14:12:24
chat rakendus |
|
|
Kirjutan php ühte lihtsat chat'i rakedust. Andmete uuedamine käib kliendi poolelt ajaxiga abil.
Soov lisada sõnumite kusutamise funktsioon. Kuidas seda oleks mõislik teha? Just Kliendi poolelt ei suuda välja mõelda.
|
|
Kommentaarid: 42 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
41 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
24.12.2012 14:24:40
|
|
|
Kui hoiad sõnumeid andmebaasis, siis sõnumi väljastusel html is lisad lingi sõnumi ID ga ning selle järgi saadki määrata sõnumi, mida kustutada. Kui on vaja, et kustutada saaks ainult see, kes saatis, tekitad andmebaasi ka IP lahtri ja lubad kustutada ainult neid, kelle IP on sama sõnumi saatja omaga. See, et asi AJAX aknas jookseb pole ju määrav, kui seal on link, millel küljes siis sõnumi ID ja kasutaja IP saad selle abil ju kustutamis koodi php s käima tõmmata, et mitte chat akent reload teha käivitad kustutamis koodi mõnes hidden frame sees.
Võid veel tekitada olukorra, kus IP järgi lisad kustuta lingid ainult kliendi sõnumitele, teised oleksid ilma linkideta.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
geek
HV kasutaja
liitunud: 07.04.2004
|
24.12.2012 14:30:38
|
|
|
Ole just hädas selle poolelega, kuidas sõnumi kustutamine kõigile ülejäänud chat'is olevatele nähtavaks teha.
Tavalised sõnumid teen kliendi poolelt nähtvaks qjuery appendi abil lisades uue div'i.
|
|
Kommentaarid: 42 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
41 |
|
tagasi üles |
|
 |
neros
HV Guru

liitunud: 26.11.2003
|
24.12.2012 16:43:17
|
|
|
Sul on päris mitu võimalust. JQuery appendiga divi lisades annad divile näiteks id-attribuudi kus on sees "field-x" kus x on andmebaasist tulev ID. Kui saadad mingi päringu, saad päringule vastuseks näiteks "removed:x" ning siis lihtsalt $("#field-"+x).remove();
Sõltub ka muidugi sellest kuidas sul andmebaas tehtud on ning mismoodi täpselt andmete uuendamine käib. Kui jsoniga loogilisel kujul a la
{"added":[{"id":5,"value":"new message 1"},{"id":6, "value":"new message 2"}]}
|
Sinna on väga lihtne "removed" sisse lükata. Pead muidugi meeles pidama uuendamise kellaajad andmebaasis ja ID järgi otsimise asemel hoopis timestampi kaasa panema ja sealt siis vaadata mille changed väljad on uuemad kui request. Paremini oskaks aidata kui teaks su uuendusskripti.
_________________ GitHub
.NET Core & Azure baasil lahendused ja arhitektuur - kontakt. |
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
40 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
24.12.2012 17:03:55
|
|
|
Oled asja vist liialt keerukalt lahendanud. Kontrollid alati, kas sõnum on juba ekraanil ja loed siis ainult neid, mis juurde on tekkinud?
Lihtsam oleks lugeda kõik sõnumid alates ajast, mil ise liinile läksid. Siis oleks kogu su sõnumimajandus ühel php lehel koos ja kustutus lingid ning muu kammajjaa ka seal. Kui nüüd andmebaasist sõnum maha läheb, siis järgmise reloadimise käigus teda seal lihtsalt pole ja pole ka midagi vahelt vaja keeruliselt maha kustutada.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
neros
HV Guru

liitunud: 26.11.2003
|
24.12.2012 20:59:31
|
|
|
Andrus, sellega on see probleem, et ta tekitab piisavalt trafficut. Ühe rea laadimine võtab kõvasti vähem bandi kui terve krempli sikutamine. Longpolli või socketitega võib ka tavalise poll-404-poll-404-poll-200-load-skeemi ära unustada. Väikekasutajal üldiselt BW pärast muretseda tarvis ei ole, kuid tuleviku tarviks võib päris kasulik harjutus olla. Eriti nukker on terve lehe laadmine just telefonide puhul - pigem tõmmata ainult uuemad sõnumid kui kõik mis olemas on.
Üldiselt on mingisugune optimisatsioon brauseri poole pealt tarvilik. Ajax ei ole miski mis loodi ainult selleks, et lehti peaks vähem refreshima ja kõik oleks dünaamilisem - ei, seal on ka bandwidthi ja üldise serveriressursi säästmise nõks sees. Üks request mis tagastab JSONit annab kliendimasinale selle loetavaks vormindamise ülesande, on vähem mahukam ning annab serverile vähem koormust.
_________________ GitHub
.NET Core & Azure baasil lahendused ja arhitektuur - kontakt. |
|
Kommentaarid: 48 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
40 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|