[Ag seinm ceoil]
>> DOUG LLOYD: Mar sin, ceann amháin níos mó saghas nóisean go
saghas dtagann faoi scáth Is JavaScript rud ar a dtugtar AJAX.
Suas go dtí an bpointe seo, ár n- idirghníomhaíocht le JavaScript
Tá teoranta a bhrú ar tharlaíonn cnaipe agus rud éigin.
Agus go háirithe, an rud a tharlaíonn
Is é ár láithreáin ghréasáin cuma agus athruithe a bhraitheann.
Ceart?
Cosúil go háirithe, sa doiciméad físeán samhail réad,
Athraigh mé an dath cúlra.
Ach nuair a rinne mé, ní raibh mé a dhéanamh ar aon iarratais breise speisialta.
Ní raibh mé ag iarraidh go an bhfreastalaí chur chugam leathanach nua.
Athraigh mé díreach cad a bhí mé cheana féin.
Ní raibh mé ag a athlódáil mo leathanach, agus rudaí a athrú cinnte,
mar sin tá go mór.
Ach níl cinnte roinnt idirghníomhú leis an úsáideoir lámhleabhar i gceist.
Is AJAX teicníocht fuarú a ligeann dúinn a thabhairt cothrom le dáta an leathanach ar ábhar,
agus ní hamháin an cuma agus bhraitheann, gan athlódáil.
>> Agus ag go sonrach nuair mé rá thabhairt cothrom le dáta an leathanach ar ábhar,
Níl mé ag rá athscríobh linn a an leathanach ag baint úsáide as JavaScript.
Tá mé ag rá a iarraidh againn i ndáiríre tuilleadh eolais ón bhfreastalaí
gan ár leathanach a bheith a athlódáil.
>> Anois gur saghas beagán de teicníocht níos airde
go bhfuil muid ag dul chun labhairt faoi ​​i físeán seo.
Táimid ag dul go bhfuil roinnt idirghníomhaíocht.
Ach nuair a dhéanann muid, tá mé ag dul a bheith iarratais ar an fhreastalaí gréasáin a dhéanamh.
Sa chás seo, ach cad atá ag rith mo fhreastalaí gréasáin Apache.
Tá mé ag dul a bheith ag déanamh breise iarratais cé go bhfuil mé ag tabhairt cuairte ar an leathanach gréasáin,
ach ní bheidh mo leathanach athnuachan.
>> Tá sé seo ag dul díreach a asynchronously thabhairt cothrom le dáta mo leathanach.
Agus sin, i ndáiríre, a sheasann AJAX do,
Is Asynchronous JavaScript agus XML.
Tá XML de marcála eile de chineál ar teanga, agus is féidir leat a shórtáil de
smaoineamh ar é díreach cosúil HTML.
Níl sé go leor ar an rud céanna, ach tá sé go bunúsach ach teanga marcála.
Mar sin, tá sé asynchronous JavaScript agus teanga marcála.
>> Mar sin, d'fhonn úsáid a bhaint seo a AJAX technique-- AJAX
nach bhfuil teanga cláir ar leith.
Tá sé ach saghas sraith de techniques-- linn a
Ní mór a chruthú speisialta JavaScript réad, a
Tugtar an XMLHttpRequest.
Anois, tá sé an-éasca a dhéanamh.
Táimid ag rá ach var, is cuma cad ba mhaith linn a thabhairt ar an réad,
ionann XMLHttpRequest nua.
Agus anois ní mór dúinn a fháil anois ar saghas AJAX de rud,
nó XMLHttpRequest rud, rud a ligfidh
dúinn a thabhairt cothrom le dáta asynchronously ár leathanach.
>> Tar éis dúinn gotten seo nua rud, an XMLHttpRequest,
ní mór dúinn rud éigin a dhéanamh ar a iompar onreadystatechange.
Onreadystatechange Tá iompar i ndáiríre ach
nuair a dhéanann tú iarratas le leathanach gréasáin, an leathanach
Téann trí roinnt céimeanna.
Gcéad dul síos, nach bhfuil iarratas curtha chuig.
Ansin, tá an t-iarratas curtha sheoladh, ach ní beart dá.
Ansin tá an t-iarratas curtha beart dá.
Ansin, is é an t-iarratas á sheoladh ar ais chugat.
>> Ansin, is é an t-iarratas luchtaithe go hiomlán i do leathanach.
Glacfar iad stáit éagsúla.
Agus mar sin ní mór dúinn a shocrú ár réad XMLHttpRequest nua
a athrú ar nuair a athraíonn an stát réidh.
Agus de ghnáth, a dhéanann muid é seo trí shainmhíniú feidhm gan ainm, a
tá muid eolas maidir leis ó JavaScript anois, go
ar a dtugtar nuair a athraíonn an stát réidh.
Tá sé i ndáiríre nach bhfuil i bhfad níos mó ná sin.
Táimid ag dul ach a bheith shainmhíniú ar feidhm gan ainm, saghas cosúil le cad a
bhí á dhéanamh againn i JavaScript, i gcás ina ba mhaith linn
go mbeadh feidhm gan ainm freagra a thabhairt ar ar cliceáil,
nó nuair a bhí á dhéanamh againn ar léarscáil de na rudaí éagsúla i sraith.
>> Rud a tharla nuair Bhí chliceáil ar rud éigin.
Sa chás seo, tá sé ach go bhfuil rud éigin ag tarlú nuair a bheidh an staid ár leathanach
athruithe.
Tá dhá airí eile go bhfuil saghas of-- ní bhíonn siad
na hairíonna ach go bhfuil bunúsach leis XMLHttpRequest,
ach tá siad na cinn go leor tábhachtach.
Níl rud ar a dtugtar readyState, a is féidir leat buille faoi thuairim is dócha,
Is a bhaineann le onreadystatechange.
Insíonn sé i ndáiríre tú cad é an readyState.
0, 1, 2, 3, agus 4 Is iad na féidearthachtaí ann,
agus tá siad saghas thart ag freagairt don fhanacht
Bhí mé ag caint díreach faoi an dara ó shin.
>> Agus ansin stádas, a tá súil againn má chuaigh gach rud ceart go leor,
Is 200, atá gearr do, ar ndóigh, OK,
a bhfuil muid eolas maidir leis ó Http.
Mar sin, tá muid ag súil go bhfuil ár stát réidh Is ceithre, agus is é ár stádas 200.
Agus más rud é ár stát réidh Is ceithre, agus an freagra
tá sé réidh le bheith curtha ar an leathanach, agus is é an stádas 200,
bhí muid in ann a dhéanamh gach rud go rathúil,
anois is féidir linn asynchronously thabhairt cothrom le dáta ár leathanach
gan a bheith a athlódáil an t-ábhar ar fad é.
>> Tar éis tá muid a shainmhínítear cad a tharlaíonn leis an iompar onreadystatechange,
agus tá muid a sheiceáil go readyState Is 4 agus tá stádas 200,
ansin tá gach ní mór dúinn a dhéanamh oscailt suas ar asynchronous
iarratas, atá ag déanamh ach an Http GET ginearálta iarraidh.
Just a dhéanamh air programmatically, in ionad trínár bhrabhsálaí gréasáin.
Agus ansin dúinn a sheoladh an iarraidh sin.
Mar sin, cad a dhéanann sé seo b'fhéidir cuma mhaith i gcomhthéacs?
Mar sin, tá anseo le feidhm a déileálann sé le hiarratais AJAX.
OK?
Agus tá mé a dúirt treallach glacann sé argóint.
Agus seo le saghas ar cnámharlach ginearálta anseo.
Ag an tús, a fháil againn muid féin rud XMLHttpRequest nua.
Ansin, is gá dom a shocrú ar an iompar onreadystatechange.
Agus mar sin tá mé ag dul a rá nuair a athraíonn an readyState,
Ba mhaith liom tú a ghlaoch an fheidhm seo.
>> Atá ag dul a iarraidh ar an ceist, más rud é an readyState
Is 4, má tá an readyState athraigh a bheith 4, agus ba é an stádas 200,
mar sin bhí againn iarratas rathúil, mé ag iarraidh rud éigin go dtí an leathanach a dhéanamh.
Agus beidh orainn a chur le breathnú ag sampla de cad
a d'fhéadfadh a bheith rud éigin i an dara.
Mar sin ansin, anois tá mé sainithe m'fheidhme gan ainm,
m'fheidhme freagartha aon uair na n-athruithe readyState.
>> Mar sin, ansin is gá mé díreach tar éis a oscailt suas le a iarraidh, ag baint úsáide as an modh Oscailte.
Agus ansin, cuirim iarratas sin.
Agus a ligean ar ghlacadh le breathnú ar sampla níos nithiúla
ar cad is féidir a dhéanamh ar ár AJAX leathanaigh ghréasáin.
Mar sin, tá mé anseo an-simplí leathanach ar a dtugtar home.html.
Agus tá fuair mé go dtéann an t-eolas anseo agus éigin de roghchlár anuas.
>> Agus beidh orainn chaitheamh ar an sa dara ceann.
Ach is dóigh liom ba chóir dúinn a ghlacadh anois le féachaint ar an cód foinse iarbhír.
Agus mar sin, tá mé ag dul a oscailt suas home.html.
Agus beidh orainn a fheiceáil cad atá ar siúl.
Mar sin, suas ar an barr an-anseo, tá mé roinnt rudaí JavaScript go bhfuil dul ar.
>> Agus anseo, tá mé cosúil a div bhfuil ID bhfuil infodiv,
agus roinnt eolais ag dul chun dul ann.
Agus ansin tá mé an fhoirm seo.
Agus taobh istigh de seo foirm, tá mé rud éigin
ar a dtugtar Rogha, a bhfuil ach roghchlár anuas
le bunch de roghanna éagsúla.
Agus is cosúil go bhfuil athruithe nuair, nuair Tá an rogha atá roghnaithe
athrú, tá mé ag dul chun glaoch roinnt feidhm cs50Info,
agus ansin mé ag dul a pas a fháil i this.value,
i gcás ina tagraíonn sé seo do cén rogha roghnaíodh,
agus tá luach ar cheann de na anseo, rogha luach = ionann folamh, "Blumberg,"
"Bowden," "chan," agus "Malan."
>> Mar sin, cad a d'fhéadfadh iarbhír tarlú anseo nuair is féidir liom é seo?
Bhuel, a ligean ar ghlacadh féachaint ar blumberg.html.
Breathnaíonn mhaith tá sé ach Blúire de roinnt Html.
Agus go deimhin, cad tá mé ag súil bhfuil dul chun tarlú anseo
Tá mé ag dul a bheith in ann chun an breiseán an Html díreach isteach i mo leathanach gréasáin
gan a bheith a athlódáil an leathanach, ar nós go nuair
Roghnaigh mé Hannah as an anuas menu, faisnéis maidir le Hannah,
go háirithe, faisnéis seo anseo i blumberg.html,
Is an méid a léiríonn suas ar an leathanach.
Agus ní dóigh liom go bhfuil a athnuachan.
Agus má roghnaigh mé duine éigin eile, Bheadh ​​a gcuid faisnéise thaispeáint suas.
Conas is féidir liom a dhéanamh?
Arís, éilíonn seo dúinn a úsáid roinnt AJAX.
Agus mar sin, beidh orainn a oscailt suas ajax.js.
Agus is é anseo go fheidhm, cs50Info.
Má tá ainm rud ar bith, ar ais mé.
Níl mé ag dul chun aon ní a dhéanamh má Tá an rogha folamh roghnaíodh.
Seachas sin, tá mé ag dul go dtí a chruthú XMLHttpRequest nua.
Agus ansin mé ag dul a rá, nuair a bheidh an hathruithe readyState, glaoch fheidhm seo.
>> Agus má tá an readyState 4 agus is é an stádas 200,
anseo tá le beagán de jQuery ar líne 13.
Ach go léir Tá mé ag déanamh go bhfuil ag rá, athrú ar an ábhar infodiv
a bheith is cuma cad a fuair mé ar ais mar freagra ó mo HttpRequest.
>> Cad é mo HttpRequest?
Bhuel, tá an ceart sin anseo ar líne 18 agus 19.
Líne 18, tá mé ag ullmhú go bunúsach iarratas ar ainm + html GET.
Agus arís, is é ainm anseo an argóint go raibh
ritheadh ​​i mar pharaiméadar chun cs50Info.
>> Mar sin, go bunúsach, tá mé ag dul i duine éigin ar ainm, a bhí go sraith de roghanna
a chonaic muid sa anuas roghchlár san fhoirm.
Tá mé ag dul go t-ainm.
Agus tá mé ag rá go mbeadh mé tú buíochas a le do thoil a fháil dom go file.html,
agus ansin a sheoladh an iarraidh sin.
>> Agus mar sin go bhfuil onreadystatechange dul a bheith ag éisteacht agus ag fanacht agus ag fanacht
agus ag fanacht, go dtí an readyState Is 4, agus is é an stádas 200.
Mar sin tá sé réidh le bheith sheirbheáil, agus bhí an t-iarratas rathúil.
Agus ansin má tá sé, tá sé ag dul go dtí athrú ar an ábhar infodiv
a bheith ar an téacs freagartha go bhfuair mé ar ais.
>> Mar sin a ligean ar a fheiceáil conas an D'fhéadfadh obair i ndáiríre.
Mar sin, beidh orainn a ceann ar aghaidh go dtí mo bhrabhsálaí fuinneog, agus beidh muid ag breathnú anseo.
Mar sin, a ligean ar ghlacadh le breathnú ar cad atá ar siúl anseo i AJAX.
Mar sin, beidh orainn a roghnú duine éigin ón roghchlár anuas.
Mar sin, sa chás seo, a ligean ar ach roghnaigh Hannah.
Agus fógra a Hannah Tá faisnéis athrú,
ach ní raibh mé ag any-- mo Ní raibh an leathanach athluchtú go hiomlán.
An stuif fhan.
An chuid is mó de na rudaí a d'fhan.
Ní raibh Tástáil AJAX athrú.
An cnaipe féin, seo anuas roghchlár ní raibh athrú.
Ach rinne faisnéis athrú.
Agus ag brath ar an gcaoi a go tapa mo bogann ríomhaire,
d'fhéadfadh tú a fheiceáil i ndáiríre go bhfuil an t-ábhar Imíonn agus ansin reappears i ndáiríre
go tapa.
Sin an t-ábhar á scriosadh as infodiv,
agus ansin in ionad le iarratas nua asynchronous.
>> Mar sin, má aistriú liom é a bheith le rá, Rob-- agus arís, a chur le breathnú,
agus b'fhéidir beidh orainn é a fheiceáil i ndáiríre imíonn siad agus reappear go tapa.
Féach leat é sin?
Conas popped sé díreach amach, agus ansin refilled é?
Sin an t-iarratas AJAX saghas ar siúl.
Agus ag brath mar sin ar an duine roghnaigh mé, tá mé
dhéanamh asynchronous difriúil iarratas le comhaid éagsúla
go bhfuil mé ar an bhfreastalaí agam.
Agus an t-ábhar de mo infodiv thabhairt cothrom le dáta,
bunaithe ar cé acu de na atá roghnaithe agam.
Mar sin tá sin i ndáiríre go léir ann go AJAX.
Ligeann sé dúinn a dhéanamh ar na asynchronous iarrataí, nuashonruithe ar an leathanach.
Gan a bheith a athnuachan an leathanach ar fad,
táimid ag dul a fháil nua ábhar ó sé trí
iarratas nua úr leis an bhfreastalaí.
Agus mar sin, is féidir ár leathanaigh a bheith go leor le beagán níos dinimiciúla.
>> Agus mar a fháil againn níos agus níos mó chun cinn, tú
D'fhéadfadh rudaí cosúil le a fháil rá, do bhosca r-phost,
i gcás nach gá duit aon rud a dhéanamh.
Ní gá duit a cliceáil ar anuas roghchlár nó cliceáil rud ar bith,
agus go léir a tobann, do is nua Léiríonn ríomhphost suas ag an mbarr.
Sin freisin ach iarratas AJAX.
AJAX Tá iarraidh do freastalaí, freastalaí ríomhphoist an,
a sheoladh thar an fhaisnéis go léir faoi ​​do r-phoist is déanaí,
agus ag athrú an méid a fheiceann tú ar an scáileán a bheith ar do shraith nua de r-phoist.
Agus má tá tú ceann nua i ann, ansin an t-ábhar sin div
Beidh athrú a léiriú an t-ábhar suas chun dáta.
Tá mé Doug Lloyd.
Is é seo an CS50.