Escolar Documentos
Profissional Documentos
Cultura Documentos
anselmobattisti@yahoo.com.br, chrisjulio@gmail.com
18 de agosto de 2006
ete @rnimo em lngu ingles de Asyncronous Javascript And XMLA o uso sisteE mtio de tvsript e wv @e derivdosA pr tornr o nvegdor mis intertivo om o usurioD utilizndoEse de soliites ssnrons de informesF ete no somente um novo modeloD tmm um iniitiv n onstruo de plies web mis dinmiE s e ritivsF ete no um tenologiD so relmente vris tenologis trlhndo juntsD d um fzendo su prteD ofereendo novs funionliddesF ete inorpor em seu modeloX
epresento sed em pdresD usndo rwv e gY ixposio e intero dinmi usndo o hywY sntermio e mnipulo de ddos usndo wv e vY eupero ssnron de ddos usndo o ojeto wvrttpequestY Javascript unindo tods els em onjuntoF
y modelo lssio de plio web trlh ssimX e miori ds es do usurio n interfe dispr um soliito r pr o servidor webF y servidor proess lgo reuperndo ddosD mstigndo nmerosD onversndo om vrios sistems legdos e ento retorn um pgin rwv pr o lienteF um modelo dptdo do uso originl d web omo um gente de hipertextoD porm o que fz web o pr hipertexto no neessrimente fz el o pr plies de softwreF ist proximo possui muito dos sentidos tniosD ms no fz tudo que um usurio experiente poderi fzerF inqunto o servidor est fzendo seu trlhoD o que o usurio estr fzendoc y que ertoD esperndoF i d etp em um trefD o usurio gurd mis um vezF I
yvimenteD se ns estivssemos projetndo web do nd pr pliesD no fE rmos om que os usurios esperssem em voF m vez que interfe est rregdD por que intero do usurio deveri prr d vez que plio preissse de lgo do servidorc x reliddeD por que o usurio deveri ver plio ir o servidor tod vezc e mior vntgem ds plies ete que els rodm no prprio nvegdor webF intoD pr estr hil exeutr plies eteD str possuir lgum dos nvegdores modernosD ou sejD lndos ps PHHIF o elesX wozill pirefoxD snternet ixplorer SCD yperD uonqueror e friF pigur IX higrm de requisies o servidor
A Classe Assncrona
r se fzer um pedido r o servidor usndo tvsriptD vo preis de um ojeto que disponiiliz ess funionliddeF l lsse foi primeiro introduzid no snternet ixE plorer so form de um ojeto etive hmdo wvrF into o wozillD o fri e outros rowsers seguirmEseD implementndo um lsse de nome wvrttpequest que suportv os mtodos e s proprieddes do ojeto etive originl d wirosoftF y digo ixo mostr form genri de instnir um ojeto que prover os menismos pr pedidos ssnronosF gdigo IX 9jxsnitFjs9
function ajaxInit () { var xmlhttp ;
try
catch ( ee ) try {
xmlhttp
= new {
ActiveXObject (
10
catch ( e ) try {
= new { =
ActiveXObject (
false ;
15
} }
20
return
xmlhttp ;
dos ddos ssim que houver um retornoF httprequestFonredysttehnge a nmeyfhepuntionY mos ver o que que est funo deve fzerF rimeiroD funo preis de veri(r o estdo do pedidoF e o estdo possui o vlor RD isso signi( que totlidde d respost do servidor foi reeid e que pode ontinur proessEl vontdeF e prxim ois veri(r o digo do estdo d respost r do servidorF r os nossos ojetivos s estmos interessdos n respost PHH yuF
modeX ipo d requisioD qi ou y urlX rl do ojeto soliitdo no modo ssnronoD pro questes de segurn o pirefox no permite que v estej em um servidor diferente d pgin que est fzendo soliitoF oolenX true @ssnronoA ou false @snronoAF
send() o mtodo ixh que tiv onexo e fz requisio de informes o doumento erto pelo mtodo yixF iste mtodo possui somente um prmetro que serve pr envirmos ddos extrs o doumento que estmos essndoF smos este prmetro qundoD por exemploD no mtodo yixD essmos o doumento om y o invs de qiD neste so os ddos do y so pssdos neste prmetro de ixhF
Exemplo 1
Carregar Arquivo
" text / javascript " s r c=" ajaxInit . js "></ s c r i p t > t y p e=" text / javascript ">
t y p e= carregar () { ajaxInit () ;
do
S e r v i d o r </ t i t l e >
document . g e t E l e m e n t B y I d (
10
if
( ajax )
a j a x . open (
' GET ' , ' http ://200.201.81.38/ anselmo / ciclo / texto . txt ' , t r u e ) ;
= = = = 200) {
if
15
} } }
if
document . g e t E l e m e n t B y I d (
ajax . responseText ;
20
}
ajax . send ( n u l l ) ;
25
<d i v
i d=
t y p e=
" texto "></d i v > " button " v a l u e=" Carregar "
o n C l i c k=
x linh V oorre hmd pr funo ajaxInit() que est dentro do rquivo referenido n linh SF e linh W getElementByid('texto') 1 e innerHTML2 inserem o texto grregndo dentro do hs om o id igul textoF xs linhs IID IP e IQ so veri(dos o status do pedidoD status do retorno e efetiv insero do ontedo do rquivo textoFtxt no hsD respetivmenteF xeste primeiro exemplo no houve nenhum proessmento por prte de um lingugem de progrmo no servidorD porm no mundo rel gerlmente um hmd no modo ssnrono se omuni om um script @rD tD eD uyD gqsD iv FFFAD que fz um proessmento sore os ddos ele envidos e por (m retorn o resultdoD nosso prximo exemplo mostrr extmente istoF
Exemplo 2
im nosso segundo exemplo iremos introduzir o uso de um lingugem server-side reE lizndo um proessmento sore os ddos envidos no modo ssnronoD isto ser feito rindo um luldorF
em Javascript para selecionar o elemento cujo id igual a texto. em Javascript para inserir uma string em um elemento de modo que esta seja interpretada como cdigo HTML.
2 Comando 1 Comando
xoss luldor ser ompost de P ixs de texto pr entrd dos vlores e um lel pr exiio dos resultdosD ni opero que el reliz somF gdigo QX 9gluldor rwv9
<!D C O TY E H M P T L PUBLIC <h t m l> <h e a d> < t i t l e >Exemplo
" text / javascript " s r c=" ajaxInit . js "></ s c r i p t > t y p e=" text / javascript ">
t y p e= calcular () { ajaxInit () ;
Calculadora
</ t i t l e >
document . g e t E l e m e n t B y I d (
10
if
" Calculando
... " ;
( ajax )
ajax . onreadystatechange v1 =
v2
15
} }
" v1 " ) . v a l u e ; " v2 " ) . v a l u e ; u r l = ' http ://200.201.81.38/ anselmo / ciclo / calcular . php ? v1 = '+v 1+'& v2 = '+v 2 ; a j a x . o p e n ( ' GET ' , u r l , t r u e ) ;
document . g e t E l e m e n t B y I d ( = document . g e t E l e m e n t B y I d ( ajax . send ( n u l l ) ;
20
function
if
resultado ()
{ = = 4) {
if
= =
200) {
document . g e t E l e m e n t B y I d (
ajax . responseText ;
25
}
30
<f o r m
<i n p u t
" calculadora "> " text " name=" v1 " i d=" v1 " s i z e ="3" /> + <i n p u t t y p e=" text " i d=" v2 " s i z e ="3" /> = <l a b e l i d=" resultado "></ l a b e l > <b r /> <i n p u t t y p e=" button " v a l u e=" Carregar " o n C l i c k=" calcular () " />
name= t y p e=
name=
" v2 "
</f o r m>
35
gdigo RX 9gluldor r9
<? echo ?> $_GET [
'v1 ' ]
+ $_GET [
'v2 ' ] ;
x linh II o mtodo onreadystatechange ssume um funo extern funo que ri o ojeto jxF e linh IP e IQ ri dus vriveis que rmzenm os vlores dos mpos que esto no formulrioD este ddo so pegos trvs do value 3 F e vrivel url d linh IR ir onter o endereo e s vriveis que sero usds pelo r pr lulr som dos resultdosF y rquivo r que reliz o lulo d som relmente simplesD ele peg s dus vriveis v1 e v2 do array $_GET do rD som seus vlores e esreve o resultdoF
3 Propiedade
et o momento o resultdo de nosss hmds ssnrons erm esritos de form diret trvs do mtodo innerHTMLD o uso deste mtodo desonselhdo pelo Qg pels seguinte rzesF
um propriedde desenvolvid pel MicrosoftD por est rzo proprietriD porm mior prte dos nvegdores inorporouEF or no ser pdro est sendo olid ds novs verses destes nvegdores y resultdo um string o psso que o hyw um estrutur hierrqui em rwv
ys prximos dois exemplo so idntiosD diferenindo pen form omo os ddos so pssdos do servidor pr o lienteD o primeiro usndo texto norml e o outro ser usdo um string no formto JSON e hyw pr exiir o resultdo de um requisioF
SELECT
SELECT a partir de
m exemplo lssio do preenhimento de um SELECT prtir de outro esolh ds iddes de um determindo estdoF iste reurso um ds miores 9pedrs no spto9 dos progrmdores de sistem webD pois qundo o usurio seleion o estdo tod pgin deve ser rerregdD inlusive os vlores dos demis mpos j preenhidosD pr que o SELECT om s iddes sej exiidoF gom ete est tref ( em mis fil pois st que sej feit um onsult ds iddes do estdo que est no primeiro SELECT e inserir s iddes no segundo SELECTF
5.1 Usando
InnerHTML
gdigo SX 9giddes rwv9
" -// W3C // DTD XHTML 1.0 Transitional // EN " " http :// www . w3 . org / TR / xhtml1 / DTD / xhtml1 - transitional . dtd "> <h t m l x m l n s=" http :// www . w3 . org /1999/ xhtml " xml : l a n g="pt - br " l a n g="pt - br ">
<!D C O TY E P html PUBLIC <h e a d> < t i t l e >Exemplo <s c r i p t <s c r i p t function t y p e=
" text / javascript " s r c=" ajaxInit . js "></ s c r i p t > t y p e=" text / javascript ">
selecionaCidade ( estado ) { ajaxInit () ; { = escreveCidades ;
Escolha
C i d a d e </ t i t l e >
10
ajax
if
( ajax )
15
} }
' http ://200.201.81.38/ anselmo / ciclo / cidades . php ? estado = '+e s t a d o ; a j a x . o p e n ( ' GET ' , u r l , t r u e ) ;
ajax . send ( n u l l ) ;
function
escreveCidades ()
20
if
} }
if
= =
4)
= =
200) {
document . g e t E l e m e n t B y I d (
ajax . responseText ;
25
function ajax
30
if
( ajax )
' http ://200.201.81.38/ anselmo / ciclo / cidadesJson . php ? estado = '+e s t a d o ; a j a x . o p e n ( ' GET ' , u r l , t r u e ) ;
url = ajax . send ( n u l l ) ; } }
ajax . onreadystatechange
escreveCidadesJson ;
35
function
if
escreveCidadesJson () = = 4) {
40
if
= =
200) {
eval (
"("+a j a x . r e s p o n s e T e x t+")" ) ;
limparDestino (
45
for
( x = 0 ; x< =j s o n . c i d a d e s . l e n g t h ; x++){
option
document . c r e a t e E l e m e n t (
option . setAttribute (
50
o p t i o n . a p p e n d C h i l d ( d o c u m e n t . c r e a t e T e x t N o d e ( j s o n . c i d a d e s [ x ] . nm) ) ;
d o c u m e n t . g e t E l e m e n t B y I d ( d o c u m e n t . c r e a t e T e x t N o d e ( j s o n . c i d a d e s [ x ] . nm) ) ;
55
} } } }
document . g e t E l e m e n t B y I d (
60
/
/
Remove t o d o s os e l e m e n t o s f i l h o s de um elemento
limparDestino ( destino ) {
function
65
while
obj } </h e a d> <body>
70
</ s c r i p t >
<f o r m
75
" selecioneCidade "> =" estado " a c c e s s k e y="e"> <u> E</u>s t a d o : </ l a b e l > < s e l e c t name=" estado " i d=" estado " onChange=" if ( this . options [ this . selectedIndex ]. value ){ selecionaCidade ( this . options [ this . selectedIndex ]. value )}"> < o p t i o n v a l u e=" -"> </o p t i o n > < o p t i o n v a l u e=" pr "> PR </ o p t i o n > < o p t i o n v a l u e=" sp ">SP</ o p t i o n >
name= <l a b e l
for
80
<l a b e l <s e l e c t
for
name=
" cidade " a c c e s s k e y="c"><u>C</u>i d a d e " cidade " i d=" cidade ">
: </ l a b e l >
</ s e l e c t >
85
<h r>
<l a b e l
<s e l e c t
90
" estado " a c c e s s k e y="e"><u>E</u>s t a d o : </ l a b e l > " estado " i d=" estado " onChange=" if ( this . options [ this . selectedIndex ]. value ){ selecionaCidadeJson ( this . options [ this . selectedIndex ]. value )}"> < o p t i o n v a l u e=" -"> </o p t i o n > < o p t i o n v a l u e=" pr "> PR </ o p t i o n > < o p t i o n v a l u e=" sp ">SP</ o p t i o n >
= name=
for
95
" cidade " a c c e s s k e y="c"><u>C</u>i d a d e : </ l a b e l > " cidade " i d=" cidade2 "> <i n p u t t y p e=" button " o n C l i c k=" alert ( eval (' fred =999; wilma =777; document . write ( fred + wilma ) ; ') ) " />
<l a b e l = <s e l e c t name= </ s e l e c t > </f o r m> </body> </h t m l>
for
gdigo TX 9giddes r9
<? header (
$estado
$cidades
if
10
}
' estado ' ] ; "" ; ( $ e s t a d o= " pr " ) { = $ c i d a d e s .= " < option value =\"1\" > Tupssi </ option >" ; $ c i d a d e s .= " < option value =\"2\" > Toledo </ option >" ; $ c i d a d e s .= " < option value =\"3\" > Cascavel </ option >" ; $ c i d a d e s .= " < option value =\"4\" > Pato Branco </ option >" ;
( $ e s t a d o= = $cidades $cidades $cidades
if
15
}
" sp " ) { " < option value =\"5\" > Mogi </ option >" ; .= " < option value =\"6\" > Palmeiras </ option >" ; .= " < option value =\"7\" > Santos </ option >" ;
.=
echo
$cidades ;
20
?>
y rquivo giddesFphp ger os elementos options que sero inseridos dentro do SELECT ds iddesF ist ordgem no muito inteligente pois quntidde de inforE mo trnsmitids do servidor pr o liente em su miori foi desneessriF h idde pens o digo e o nome deverim ser trnsmitidosD s demis informes so repetids e podem ser gerds pelo nvegdorF x linh QI do digo fonte S feit veri(o se um dos elementos do SELECT estdo foi seleiondoD se sim ento envie o vlor pr funo selecionaCidadeF y digo fonte T vrivel estdo reeid e de ordo om el pssdo o nveE gdor s opes do SELECT iddeF
5.2 Usando
JSON
tyx @om mesm pronuni do nome 4tson4em inglsAD um rnimo pr Javascript Object NotationD um formto leve pr intermio de ddos omputionisF tyx
um suonjunto d noto de ojeto de tvsriptD ms seu uso no requer tvsript exlusivmenteF e simpliidde de tyx tem resultdo em seu uso difundidoD espeilmente omo um lterntiv pr wv em eteF m ds vntgens reivindids de tyx sore wv omo um formto pr intermio de ddos neste ontextoD o fto de ser muito mis fil esrever um nlisdor tyxF im tvsript mesmoD tyx pode ser nlisdo triviE lmente usndo funo evl@AF ssto foi importnte pr eito de tyx dentro d omunidde ete devido presen deste reurso de tvsript em todos os nvegdores web tuisF x prtiD os rgumentos respeito d filidde de desenvolvimento e performne do nlisdor so rrmente relevdos devido os interesses de segurn no uso de evl@A e resente integro de proessmento wv nos nvegdores web modernosF or est rzo tyx tipimente usdo em mientes onde o tmnho do )uxo de ddos entre o liente e o servidor de supr importni @d seu uso por qoogleD hooD etFD os quis servem milhes de usuriosAD onde fonte dos ddos pode ser expliitmente on(velD e onde perd dos reursos de proessmento v no ldo liente pr mnipulo de ddos ou gero d interfeD no um onsideroF inqunto tyx freqentemente posiiondo 4em onfronto4om wvD no inoE mum ver tnto tyx omo wv sendo usdos n mesm plioF or exemploD um plio no ldo liente qul integr ddos do qoogle wps om ddos tmosfrios trvs de yeD requer suporte pr mos formtos de ddosF pigur PX eutomto que ger lingugem tyx e (gur P ilustr em form de um utmto (nito grmti d lingugem JSONF e string ixo mostr um retorno ds iddes do estdo do rnF
" text / javascript " s r c=" ajaxInit . js "></ s c r i p t > t y p e=" text / javascript ">
selecionaCidadeJson ( estado ) { ajaxInit () ; { = escreveCidadesJson ;
Escolha
C i d a d e </ t i t l e >
10
function ajax
if
( ajax )
15
} }
' http ://200.201.81.38/ anselmo / ciclo / cidadesJson . php ? estado = '+e s t a d o ; a j a x . o p e n ( ' GET ' , u r l , t r u e ) ;
url = ajax . send ( n u l l ) ;
ajax . onreadystatechange
20
function
if
escreveCidadesJson () = = 4) {
if
= =
200) {
eval (
25
limparDestino (
"("+a j a x . r e s p o n s e T e x t+")" ) ;
for
30
( x = 0 ; x< =j s o n . c i d a d e s . l e n g t h ; x++){
option
document . c r e a t e E l e m e n t (
option . setAttribute (
o p t i o n . a p p e n d C h i l d ( d o c u m e n t . c r e a t e T e x t N o d e ( j s o n . c i d a d e s [ x ] . nm) ) ;
35
d o c u m e n t . g e t E l e m e n t B y I d ( d o c u m e n t . c r e a t e T e x t N o d e ( j s o n . c i d a d e s [ x ] . nm) ) ;
document . g e t E l e m e n t B y I d ( }
40
} }
45
/
/
Remove t o d o s os e l e m e n t o s f i l h o s de um elemento
limparDestino ( destino ) {
function
50
}
while
obj
</ s c r i p t >
IH
</h e a d>
55
<body>
<f o r m
60
" selecioneCidade "> =" estado " a c c e s s k e y="e"> <u> E</u>s t a d o : </ l a b e l > < s e l e c t name=" estado " i d=" estado " onChange=" if ( this . options [ this . selectedIndex ]. value ){ selecionaCidadeJson ( this . options [ this . selectedIndex ]. value )}"> < o p t i o n v a l u e=" -"> </o p t i o n > < o p t i o n v a l u e=" pr "> PR </ o p t i o n > < o p t i o n v a l u e=" sp ">SP</ o p t i o n >
name= <l a b e l
for
<l a b e l
65
<s e l e c t
for
name=
" cidade " a c c e s s k e y="c"><u>C</u>i d a d e " cidade " i d=" cidade2 ">
: </ l a b e l >
gdigo VX 9giddes r9
<? header (
$estado
$cidades
if
10
}
' estado ' ] ; "{' cidades ':[ " ; ( $ e s t a d o= " pr " ) { = $ c i d a d e s .= "{' cdg ': '1 ' , ' nm ':' Tupssi '}, {' cdg ': '2 ' , ' nm ':' Toledo '} , {' cdg ': '3 ' , ' nm ':' Cascavel '}, {' cdg ': '4 ' , ' nm ':' Pato Branco '}]} " ;
( $ e s t a d o= = $cidades
if
15
}
.=
" sp " ) { "{' cdg ': '5 ' , ' nm ':' Mogi '}, {' cdg ': '6 ' , ' nm ':' Palmeiras '}, {' cdg ': '7 ' , ' nm ':' Santos '}]} " ;
echo
$cidades ;
20
?>
evisndo o gdigo V podemos ver que linh P hm funo headerD nel pssdo o omndo charset=iso88591D isto muito importnte pois diz odi(o do texto que est sendo retorndoD evitndo ssim que o nvegdor do usurio exi de form inorret os entos e outros rteres espeiisF gom os exemplos im pudemos ter um o noo de omo utilizr o jx em nosss plies webD msD queremos oiss mis dinmis e om efeitos por isso vmos fzer um pequeno Google Sugest
Sugerindo um Contedo
xosso prximo exemplo onsistir em um mpo de texto que d tel pressiond ir o servidor e trr um list de plvrs que omeem om o que j foi esritoF ssto ser exiido em um hsF undo lirmos em um ds plvrs que vierm do servidor hs ir sumir e o texto ir pr dentro d ix de textoF
II
iste sistem utilizdo por exemplo no servio de eEmil do YahooD neleD qundo digitEse o nome do ontto ele j vi (ltrndo os que omem om s letrs j digitdsF gdigo WX 9euto gompletr rwv9
<!D C O TY E H M P T L PUBLIC <h t m l> <h e a d> < t i t l e >Auto C o m p l e t a r </ t i t l e >
<s c r i p t <s c r i p t
t y p e= t y p e=
" text / javascript " s r c=" ajaxInit . js "></ s c r i p t > " text / javascript ">
{ ajaxInit () ;
function ajax =
sugerir ( s )
document . g e t E l e m e n t B y I d (
10
if
" Calculando
... " ;
( ajax )
' http ://200.201.81.38/ anselmo / ciclo / autoCompletar . php ?s= '+s ; a j a x . o p e n ( ' GET ' , u r l , t r u e ) ;
url = ajax . send ( n u l l ) ;
ajax . onreadystatechange
15
}
function
20
if
resultado ()
{ = = 4) {
if
= =
eval ( 0;
200) {
limparDestino (
document . g e t E l e m e n t B y I d (
25
for
( x =0; P =
x <
document . c r e a t e E l e m e n t (
"p" ) ;
P . a p p e n d C h i l d ( document . c r e a t e T e x t N o d e ( j s o n . p a l [ x ] ) ) ; P. setAttribute (
30
} } }
" onClick " , " document . getElementById ( ' pal '). value ='"+ " '; document . getElementById (' resultado '). style . visibility =' hidden '" ) ; d o c u m e n t . g e t E l e m e n t B y I d ( " resultado " ) . a p p e n d C h i l d ( P ) ;
j s o n . p a l [ x ]+
35
/
/
Remove t o d o s os e l e m e n t o s f i l h o s de um elemento
limparDestino ( destino ) { obj
function =
40
}
while
document . g e t E l e m e n t B y I d ( d e s t i n o ) ; ( obj . f i r s t C h i l d )
t y p e=
45
#r e s u l t a d o
c o l o r
: : : : : : : :
#e 5 e 5 e 5 ; 1 px solid #000;
1 5 0 px ; 0 px ; 0 px ; relative ; 4 5 px ; 0 px ;
50
margin position
l e f t m a r g i n t o p
margin }
55
{ line
h e i g h t
: : :
1 5 px ; 0 px ; 1 8 px
margin font
IP
padding
5 px ;
60
} p : hover {
background cursor }
c o l o r
: :
#c d c d c d ; pointer ;
65
<f o r m
<l a b e l
70
" auto "> =" pal " a c c e s s k e y=" pal ">P a l a v r a </ l a b e l > <i n p u t t y p e=" text " i d=" pal " name=" pal " onKeyUp=" sugerir ( document . getElementById (' pal '). value ) " /> <d i v i d=" resultado " s t y l e =" visibility : hidden "></d i v >
name=
for
$p [ 3 ] $p [ 4 ] $p [ 5 ] $p [ 6 ] $p [ 7 ]
10
$p [ 8 ] $p [ 9 ] $p [ 1 0 ] $p [ 1 1 ]
" abacate " ; " abobora " ; " banana " ; " beco " ; " cabo " ; " cebo " ; " dedo " ; " dado " ; " elefante " ; " faca " ; " gato " ; " porta " ; 's ' ] ;
15
$search $x = 0; = ( $x
= $_GET [
for
20
}
$res
if
$res $res
= .=
25
?>
" ]} " ;
1) ) ;
echo
$res ;
mos nlisr o gdigo WD n linh PR hmd funo style 5 Fvisibility 6 de(ne que o resultdo est oultoF x linh PV dus funes so diionds o prgrfo om o texto que veio do servidorD primeir funo olo plvr dentro d ix de texto e segund funo esonde o hs resultdoF egor vmos ver o gdigo IH em rD existe um vetor hmdo 6p om IP plvrsD linh IU e PH montm string no formto jsonD linh PQ remove virgul d ltim plvrF
5 Acessa 6 Atributo
os estilos em CSS em um objeto que dene se o objeto esta visvel 'visible' ou oculto 'hidden'
IQ
6.1
e integro de ete om nos de ddos no difere em nd do que foi feito t gorD pois o (m do uso do no de ddos pelo liente o servidor envi um string de voltF xosso exemplo usr o mesmo rquivo rwv do digo nteriorD pens modi(reE mos o rquivo Fphp que ser hmdo por eleF gdigo IIX 9gonexo om o fno9
# # #
<?php
" Connection_php_mysql . htm " " MYSQL " HTTP " true " = $ h o s t n a m e _ c o n e x a o = " localhost " ; $ d a t a b a s e _ c o n e x a o = " test " ; $ u s e r n a m e _ c o n e x a o = " aluno " ; $ p a s s w o r d _ c o n e x a o = " aluno " ;
F i l e N a m e= Type= $conexao = mysql_pconnect ( $hostname_conexao , $username_conexao , $password_conexao ) or die ( mysql_error ( ) ) ; mysql_select_db ( $database_conexao , $conexao ) ;
10
?>
$search
5
$ s q l=
's ' ] ;
" SELECT * FROM municipio WHERE mnc_descricao like '" . $ s e a r c h . "%' " ;
= = mysql_query ( $ s q l , $ c o n e x a o ) ; mysql_fetch_array ( $ c o n s u l t a ) ;
$consulta $linhas
10
do
}
$res {
15
while
=
" '" . s t r _ r e p l a c e ( " '" , " " , $ l i n h a s [ ' mnc_descricao ' ] ) . " '," ;
= mysql_fetch_array ( $ c o n s u l t a ) ) ;
( $linhas
.=
" ]} " ;
1) ) ;
$res ;
y digo II ri um onexo om o no de ddosD linh W onet om o servidor usndo o usurio e senh e linh IH inii o uso do no de ddos textF y digo IP fz pesquis dos munipios no no de ddosD n linh P inlud o rquivo que fz onexoD n linh R vrivel 6serh reee plvr que foi digitd n ix de textoD n linh IQ o omndo str_replace 7 foi utilizdo pr evitr prolems om plvrs que por ventur ontenhm sps simples omo por exemplo d9gu se este D trtmento no for feito n hor de hmr funo eval oorreri um erroF
IR
orn possvel utilizr um plio sed n web om reurso e funionliddes preidos om os que possumos hoje em nossos sistems DesktopF ssto torn o uso dos plitivos web relmente usveisY gomo modi(o ds informes d tel so priis um grnde quntidde de informes deix de trfegr inutimente pel redeY y servidor que rod plio ( menor rregdo pois existe um diviso de trefs om o lienteY ete no um tenologi por isto no neessrio pgr pr utilizrF
orm omo j dizi o poet 4nem tudo so )ores 4D temos queX
ete no soluo milgros pr todos os mles e se usdo de form indequd pode piorr um situo que j er feiY ys xvegdores usm diferentes mtodos por isso temos que estr tentos qunto eles pr no impossiilitr o uso de nossos sistems por tis nvegdoresY gomo existe um diviso de proessmente entre o liente e o servidorD temos que minimizr este proessmento pois os xvegdor em gerl no suport um rg muito pesd de scripts Y ys oto voltrD vn e histrio no funionm muito em om eteF
Referncias
I irko fridee de elmeid grerF AJAX Viso ConceitualF ortl tvD PHHSF P teve qnzF Alternatives to innerHTMLF lyery0eD PHHTF Q tesse tmes qrrettF ejxX e new pproh to we pplitionsD httpXGGdptivepthFomGpulitionsGessysGrhivesGHHHQVSFphpF PHHSF
7.1 Para Saber Mais
IS
xo use innerrwv httpXGGslyero0eFomGrtilesGinnerrwvlterntivesG5intro gin o(il do tyx httpXGGwwwFjsonForgG hrwv httpXGGwwwFquirksmodeForgGjsGrossdhtmlFhtml ixemplos em ejx httpXGGwwwFjpsFetFrGjxG wteril sore gss httpXGGwwwFmujorFom hyw rwv e rwv httpXGGwwwFmtehsFomGwQGintrodutionFhtml
IT