Kom ihåg mig?
Home Menu

Menu


Validera formulär med ajax

Ämnesverktyg Visningsalternativ
Oläst 2006-12-26, 00:13 #1
Toombass Toombass är inte uppkopplad
Medlem
 
Reg.datum: Jul 2006
Inlägg: 58
Toombass Toombass är inte uppkopplad
Medlem
 
Reg.datum: Jul 2006
Inlägg: 58
Tjenare!

Har lite funderingar angående det här med att validera sina formulär med AJAX. Håller på läser en bok om ajax just nu, och i ett av exemplena så får man skapa just ett formulär, vilket man validerar med ajax.

I exemplet så funkar det så att själva valideringen sker i ett php-script, som anropas "bakom kuliserna" av ett javascript varje gång man lämnar fältet som är markerat.

Det innebär ju en belastning för servern varje gång man lämnar ett fält. Borde det inte då vara smartare att sköta hela valideringen i Javascript, för att sedan ha en likadan/motsvarande validering i php.

Det känns som att det borde belasta servern mindre, men samma funktionallitet. Självklart ska man ju ha en validering med php ochså, även fast man validerar med ajax.

Sen finns det ju vissa saker som man behöver php till, t: ex om man ska kolla om användarnamnet redan finns i databasen, men då kan man ju använda ajax till det och vanligt javascript till dom andra fälten och endå få samma resultat till användaren.

Det finns ju även vissa script som validerar för varje ny tangent man trycker ner, det måste ju bli enormt belastande för server om man kör det via ajax?. T: ex om man ska kolla upp ett användarnamn, då måste man ju göra en sökning emot databasen för varje tangent som trycks ner.

Skriv gärna lite om vad ni tycker angående om det här, och rätta mig om jag har fel
Toombass är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-12-26, 00:31 #2
jahaa jahaa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2004
Inlägg: 91
jahaa jahaa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2004
Inlägg: 91
Kort sagt, använd AJAX (javascript) för att underlätta för användaren. Men använd det aldrig för att vara det enda filtret mot data skickad av användarna.

Kom ihåg att javascript enkelt kan stängas av.
jahaa är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-12-26, 00:40 #3
Toombass Toombass är inte uppkopplad
Medlem
 
Reg.datum: Jul 2006
Inlägg: 58
Toombass Toombass är inte uppkopplad
Medlem
 
Reg.datum: Jul 2006
Inlägg: 58
jahaa: Jo självklart. Men det jag är fundersam över är hur pass belastad servern blir av de olika metoderna som jag beskrev. Och ifall det är värt det osv. Jag menar det måste ju vara jobbigt för servern att göra en databasförfrågan varje gång man trycker en ny tangent i användarnamn inputen.
Toombass är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-12-26, 01:08 #4
jahaa jahaa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2004
Inlägg: 91
jahaa jahaa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2004
Inlägg: 91
Citat:
Originally posted by Toombass@Dec 26 2006, 00:40
jahaa: Jo självklart. Men det jag är fundersam över är hur pass belastad servern blir av de olika metoderna som jag beskrev. Och ifall det är värt det osv. Jag menar det måste ju vara jobbigt för servern att göra en databasförfrågan varje gång man trycker en ny tangent i användarnamn inputen.
Ska inte vara något problem, sätt en limit på hur många rader du hämtar.
Dessutom behöver du inte börja lista förns X bokstaven (vad nu är lämpligt för din appl.). Också att ha en liten fördröjning innan du hämtar datan.
jahaa är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-12-26, 02:17 #5
Toombass Toombass är inte uppkopplad
Medlem
 
Reg.datum: Jul 2006
Inlägg: 58
Toombass Toombass är inte uppkopplad
Medlem
 
Reg.datum: Jul 2006
Inlägg: 58
Nej det har du rätt i, kan ju ha en fördröjning på en halv sekund eller nått ochså, så att den inte kollar databasen försen man låtit bli tangenterna i en halv sekund.
Toombass är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-12-26, 13:59 #6
Charlie Charlie är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 701
Charlie Charlie är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 701
Låter som att din fråga handlar om, "ska man använda php och ajax-anrop för att kontrollera fält där man egentligne inte behöver ha servern", t ex kolla om en mail-adress innehåller ett @. Då skulle jag aldrig skicka förfrågan till servern med Ajax.

Håll dig till att kontrollera namns upptagenhetsstatus eller liknande.

Däremot måste du som jahaa skriver, kontrollera värdena efter att användaren har postat formuläret också, eftersom det är så lätt att gå runt javascript-validering, och det inkluderar ju förstås validering som kör omvägen via Ajax.
Charlie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-12-26, 15:43 #7
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Problemet med Ajax just för tillfället är att ingen riktigt vet när man ska använda det (och kanske i synnerhet i läroböcker där man försöker skapa skolexempel som är opraktiska i verkligheten). Visst är det bättre att göra en js-koll på sidan och sedan en serverside-kontroll när datan skickas i ditt exempel. Ett undantag kan vara t ex när man ska registrera sig på ett forum och användarnamnet med stor sannolikhet kan vara upptaget (det kan man ju inte förkontrollera med js på klienten). Då kan det vara snyggt, praktiskt och effektivt att (kanske t o m vid varje knapptryckning) kontrollera om det finns en användare med det namnet och eventuellt även föreslå alternativ redan innan det skickas istället för att vänta på att formuläret postas och återkomma med hela formuläret för nytt försök (som ofta betyder flera frustrerande försök att lura ut ett trevligt användarnamn för användaren). (Det finns förstås också en säkerhetsaspekt på att förse blivande medlemmar med tidigare medlemmars användarnamn men dessa kan man ju oftast enkelt läsa ändå på ett forum som detta.)

Man bör tänka igen ordentligt när och för vad man använder Ajax och inte nödvändigtvis med serverbelastning i åtanke utan snarare för att ge bästa möjliga upplevelse. Ofta känner man på sig när det skulle vara smidigt att använda Ajax när man själv testar sina webapplikationer. (Det känns som det finns en betydande risk att vi kommer få en brutal överanvändning av Ajax den närmaste tiden innan alla klart för sig för vad och när Ajax är lämpligt…)
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-12-26, 17:29 #8
wmasterj wmasterj är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2006
Inlägg: 17
wmasterj wmasterj är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2006
Inlägg: 17
Citat:
Originally posted by Toombass@Dec 26 2006, 00:40
jahaa: Jo självklart. Men det jag är fundersam över är hur pass belastad servern blir av de olika metoderna som jag beskrev. Och ifall det är värt det osv. Jag menar det måste ju vara jobbigt för servern att göra en databasförfrågan varje gång man trycker en ny tangent i användarnamn inputen.
Ett riktigt bra verktyg för att kolla belastning på servern från den enskilda browsern är Firebug (www.getfirebug.com).

Jag har använt det ofta och tycker det underlättar väldigt mycket. Där finns också andra bra saker man kan göra, men en av dom är just att kolla XHR (XMLHttpRequest) trafiken.

Lycka till.
wmasterj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-12-27, 00:46 #9
Toombass Toombass är inte uppkopplad
Medlem
 
Reg.datum: Jul 2006
Inlägg: 58
Toombass Toombass är inte uppkopplad
Medlem
 
Reg.datum: Jul 2006
Inlägg: 58
Tack för alla svar!, har bildat mig en bra uppfattning nu!(tror jag).

/MVH Tomas
Toombass är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 20:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017