精精通javascript(英文版)_第1页
精精通javascript(英文版)_第2页
精精通javascript(英文版)_第3页
精精通javascript(英文版)_第4页
精精通javascript(英文版)_第5页
已阅读5页,还剩288页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

THISTECHNIQUEGOESWAYBEYONDSIMPLEFADEINDHTML,HOWEVERTHEABILITYTOKNOWWHETHERJAVASCRIPTISDISABLED/ENABLEDANDTOAPPLYSTYLESISAHUGEWINFORCAREFULWEBDEVELOPERSEVENTACCESSIBILITYTHEFINALPIECETOTAKEINTOCONSIDERATIONWHENDEVELOPINGAPURELYUNOBTRUSIVEWEBAPPLICATIONISTOMAKESURETHATYOUREVENTSWILLWORKEVENWITHOUTTHEUSEOFAMOUSEBYDOINGTHIS,YOUHELPTWOGROUPSOFPEOPLETHOSEINNEEDOFACCESSIBILITYASSISTANCEVISIONIMPAIREDUSERS,ANDPEOPLEWHODONTLIKETOUSEAMOUSESITDOWNONEDAY,DISCONNECTYOURMOUSEFROMYOURCOMPUTER,ANDLEARNHOWTONAVIGATETHEWEBUSINGONLYAMOUSEITSAREALEYEOPENINGEXPERIENCETOMAKEYOURJAVASCRIPTEVENTSMOREACCESSIBLE,ANYTIMEYOUUSETHECLICK,MOUSEOVER,ANDMOUSEOUTEVENTS,YOUNEEDTOSTRONGLYCONSIDERPROVIDINGALTERNATIVENONMOUSEBINDINGSTHANKFULLYTHEREAREEASYWAYSTOQUICKLYREMEDYTHISSITUATIONCLICKEVENTONESMARTMOVEONTHEPARTOFBROWSERDEVELOPERSWASTOMAKETHECLICKEVENTWORKWHENEVERTHEENTERKEYISPRESSEDTHISCOMPLETELYREMOVESTHENEEDTOPROVIDEANALTERNATIVETOTHISEVENTONEPOINTTONOTE,HOWEVER,ISTHATSOMEDEVELOPERSLIKETOBINDCLICKHANDLERSTOSUBMITBUTTONSINFORMSTOWATCHFORWHENAUSERSUBMITSAWEBPAGEINSTEADOFUSINGTHATEVENT,THEDEVELOPERSHOULDBINDTOTHESUBMITEVENTONTHEFORMOBJECT,ASMARTALTERNATIVETHATWORKSRELIABLYMOUSEOVEREVENTWHENNAVIGATINGAWEBPAGEUSINGAKEYBOARD,YOUREACTUALLYCHANGINGTHEFOCUSTODIFFERENTELEMENTSBYATTACHINGEVENTHANDLERSTOBOTHTHEMOUSEOVERANDFOCUSEVENTSYOUCANMAKESURETHATYOULLHAVEACOMPARABLESOLUTIONFORBOTHKEYBOARDANDMOUSEUSERSMOUSEOUTEVENTLIKETHEFOCUSEVENTFORTHEMOUSEOVEREVENT,THEBLUREVENTOCCURSWHENEVERTHEUSERSFOCUSMOVESAWAYFROMANELEMENTYOUCANTHENUSETHEBLUREVENTASAWAYTOSIMULATETHEMOUSEOUTEVENTWITHTHEKEYBOARDNOWTHATYOUKNOWWHICHEVENTPAIRSBEHAVETHEWAYYOUWANTTHEMTO,YOUCANREVISITLISTING63TOBUILDAHOVERLIKEEFFECTTHATWORKS,EVENWITHOUTAMOUSE,ASSHOWNINLISTING617LISTING617ATTACHINGPAIRSOFEVENTSTOELEMENTSTOALLOWFORACCESSIBLEWEBPAGEUSE/FINDALLTHEELEMENTS,TOATTACHTHEEVENTHANDLERSTOTHEMVARLIDOCUMENTGETELEMENTSBYTAGNAME“A“FORVARI0IELEMENT,/WHICHCHANGESTHESBACKGROUNDTOBLUEWHENTHEUSEREITHER/MOUSESOVERTHELINK,ORFOCUSESONITUSINGTHEKEYBOARDAIONMOUSEOVERAIONFOCUSFUNCTIONTHISSTYLEBACKGROUNDCOLORBLUECHAPTER6NEVENTS1327273CH06FINALQXD11/16/06816AMPAGE132THISPRINTFORCONTENTONLYSIZEWITHOUTHIM,THISPROJECTWOULDNOTHAVEHAPPENEDIDALSOLIKETOTHANKMYTECHNICALEDITOR,DANWEBB,FORTHOROUGHLYCHECKINGMYCODEANDREMINDINGMEOFTHEFINERPOINTSOFTHEJAVASCRIPTLANGUAGEDUETOHISEFFORT,THECODEINTHISBOOKSHOULDWORKASEXPECTEDANDBEPRESENTEDINAWAYTHATISCORRECTANDUNDERSTANDABLEIDLIKETOTHANKMYCOPYEDITOR,JENNIFERWHIPPLE,ANDMYPRODUCTIONEDITOR,LAURAESTERMAN,FORHELPINGTOKEEPTHEBOOKREADABLEANDCOMPREHENSIBLE,ANDFORDEALINGWITHMYMANYFOLLIESANDINCONSISTENCIESIALSOWANTTOTHANKTRACYBROWNCOLLINS,MYPROJECTMANAGER,FORKEEPINGMEINLINE,ORGANIZED,ANDGENERALLYONTOPOFMYDEADLINESIDALSOLIKETOTHANKJULIAWESTANDJOSHKINGFORSTICKINGWITHMETHROUGHTHELONGDAYSANDWEEKSOFWRITING,WHILEIWASSHIRKINGMYOTHERRESPONSIBILITIESJULIAWASBYMYSIDEEVERYDAY,MAKINGSURETHATIALWAYSMETMYDEADLINES,KEEPINGMESTRONG,ANDENCOURAGINGMETOWORKHARDFINALLY,IWOULDLIKETOTHANKMYFAMILYANDFRIENDSFORSUPPORTINGMEANDENCOURAGINGMETHROUGHOUTTHEYEARSXIX7273FMFINALQXD11/16/06803AMPAGEXIX7273FMFINALQXD11/16/06803AMPAGEXXINTRODUCINGMODERNJAVASCRIPTPART1NNN7273CH01FINALQXD11/16/06823AMPAGE17273CH01FINALQXD11/16/06823AMPAGE2MODERNJAVASCRIPTPROGRAMMINGTHEEVOLUTIONOFJAVASCRIPTHASBEENGRADUALBUTPERSISTENTOVERTHECOURSEOFTHEPASTDECADE,THEPERCEPTIONOFJAVASCRIPTHASEVOLVEDFROMASIMPLETOYLANGUAGEINTOARESPECTEDPROGRAMMINGLANGUAGEUSEDBYCORPORATIONSANDDEVELOPERSACROSSTHEGLOBETOMAKEINCREDIBLEAPPLICATIONSTHEMODERNJAVASCRIPTPROGRAMMINGLANGUAGEASITHASALWAYSBEENISSOLID,ROBUST,ANDINCREDIBLYPOWERFULMUCHOFWHATILLBEDISCUSSINGINTHISBOOKWILLSHOWWHATMAKESMODERNJAVASCRIPTAPPLICATIONSSODIFFERENTFROMWHATTHEYUSEDTOBEMANYOFTHEIDEASPRESENTEDINTHISCHAPTERARENTNEWBYANYSTRETCH,BUTTHEIRACCEPTANCEBYTHOUSANDSOFINTELLIGENTPROGRAMMERSHASHELPEDTOREFINETHEIRUSEANDTOMAKETHEMWHATTHEYARETODAYSO,WITHOUTFURTHERADO,LETSLOOKATMODERNJAVASCRIPTPROGRAMMINGOBJECTORIENTEDJAVASCRIPTFROMALANGUAGEPERSPECTIVE,THEREISABSOLUTELYNOTHINGMODERNABOUTOBJECTORIENTEDPROGRAMMINGOROBJECTORIENTEDJAVASCRIPTJAVASCRIPTWASDESIGNEDTOBEACOMPLETELYOBJECTORIENTEDLANGUAGEFROMTHESTARTHOWEVER,ASJAVASCRIPTHAS“EVOLVED”INITSUSEANDACCEPTANCE,PROGRAMMERSOFOTHERLANGUAGESSUCHASRUBY,PYTHON,ANDPERLHAVETAKENNOTEANDBEGUNTOBRINGTHEIRPROGRAMMATICIDIOMSOVERTOJAVASCRIPTOBJECTORIENTEDJAVASCRIPTCODELOOKSANDBEHAVESDIFFERENTLYFROMOTHEROBJECTCAPABLELANGUAGESILLGOINTODEPTH,DISCUSSINGTHEVARIOUSASPECTSOFWHATMAKESITSOUNIQUE,INCHAPTER2,BUTFORNOW,LETSLOOKATSOMEOFTHEBASICSTOGETAFEELFORHOWMODERNJAVASCRIPTCODEISWRITTENANEXAMPLEOFTWOOBJECTCONSTRUCTORSCANBEFOUNDINLISTING11,DEMONSTRATINGASIMPLEOBJECTPAIRINGTHATCANBEUSEDFORLECTURESINASCHOOLLISTING11OBJECTORIENTEDJAVASCRIPTREPRESENTINGALECTUREANDASCHEDULEOFLECTURES/THECONSTRUCTORFOROURLECTURE/TAKESTWOSTRINGS,NAMEANDTEACHERFUNCTIONLECTURENAME,TEACHER/SAVETHEMASLOCALPROPERTIESOFTHEOBJECTTHISNAMENAMETHISTEACHERTEACHER3CHAPTER1NNN7273CH01FINALQXD11/16/06823AMPAGE3/AMETHODOFTHELECTURECLASS,USEDTOGENERATE/ASTRINGTHATCANBEUSEDTODISPLAYLECTUREINFORMATIONLECTUREPROTOTYPEDISPLAYFUNCTIONRETURNTHISTEACHER“ISTEACHING“THISNAME/ASCHEDULECONSTRUCTORTHATTAKESINAN/ARRAYOFLECTURESFUNCTIONSCHEDULELECTURESTHISLECTURESLECTURES/AMETHODFORCONSTRUCTINGASTRINGREPRESENTING/ASCHEDULEOFLECTURESSCHEDULEPROTOTYPEDISPLAYFUNCTIONVARSTR“/GOTHROUGHEACHOFTHELECTURES,BUILDINGUP/ASTRINGOFINFORMATIONFORVARI0IPOINTERTOITANDHAVEITWORKWITHNOCHANGESANUMBEROFTECHNIQUESANDSOLUTIONSEXISTTHATDEVELOPERSUSETOKEEPTHEIRCODECLEANANDUNIVERSALLYCOMPATIBLETHEMOSTPOPULARTECHNIQUEFORKEEPINGYOURCODEFROMINFLUENCINGORINTERFERINGWITHOTHERJAVASCRIPTCODEISTHEUSEOFNAMESPACESTHEULTIMATEBUTNOTNECESSARILYTHEBESTORCHAPTER1NMODERNJAVASCRIPTPROGRAMMING5FIGURE11ASCREENSHOTOFTHEFIREFOXFIREBUGPLUGININACTION7273CH01FINALQXD11/16/06823AMPAGE5MOSTUSEFULEXAMPLEOFTHISINACTIONISAPUBLICUSERINTERFACELIBRARYDEVELOPEDBYYAHOO,WHICHISAVAILABLEFORANYONETOUSEANEXAMPLEOFUSINGTHELIBRARYISSHOWNINLISTING13LISTING13ADDINGANEVENTTOANELEMENTUSINGTHEHEAVILYNAMESPACEDYAHOOUILIBRARY/ADDAMOUSEOVEREVENTLISTENERTOTHEELEMENTTHATHASAN/IDOFBODYYAHOOUTILEVENTADDLISTENERBODY,MOUSEOVER,FUNCTION/ANDCHANGETHEBACKGROUNDCOLOROFTHEELEMENTTOREDTHISSTYLEBACKGROUNDCOLORREDONEPROBLEMTHATEXISTSWITHTHISMETHODOFNAMESPACING,HOWEVER,ISTHATTHEREISNOINHERENTCONSISTENCYFROMONELIBRARYTOANOTHERONHOWITSHOULDBEUSEDORSTRUCTUREDITISONTHISPOINTTHATCENTRALCODEREPOSITORIESSUCHASJSANJAVASCRIPTARCHIVENETWORKBECOMEIMMENSELYUSEFULJSANPROVIDESACONSISTENTSETOFRULESFORLIBRARIESTOBESTRUCTUREDAGAINST,ALONGWITHAWAYTOQUICKLYANDEASILYIMPORTOTHERLIBRARIESTHATYOURCODERELIESUPONASCREENSHOTOFTHEMAINDISTRIBUTIONCENTEROFJSANISSHOWNINFIGURE12IWILLDISCUSSTHEINTRICACIESOFDEVELOPINGCLEAN,PACKAGEABLECODEINCHAPTER3ADDITIONALLY,THEIMPORTANCEOFOTHERCOMMONSTUMBLINGPOINTS,SUCHASEVENTHANDLINGCOLLISION,WILLBEDISCUSSEDINCHAPTER6CHAPTER1NMODERNJAVASCRIPTPROGRAMMING67273CH01FINALQXD11/16/06823AMPAGE6UNOBTRUSIVEDOMSCRIPTINGBUILTUPONACOREOFGOOD,TESTABLECODEANDCOMPLIANTDISTRIBUTIONSISTHECONCEPTOFUNOBTRUSIVEDOMSCRIPTINGWRITINGUNOBTRUSIVECODEIMPLIESACOMPLETESEPARATIONOFYOURHTMLCONTENTTHEDATACOMINGFROMTHESERVER,ANDTHEJAVASCRIPTCODEUSEDTOMAKEITALLDYNAMICTHEMOSTIMPORTANTSIDEEFFECTOFACHIEVINGTHISCOMPLETESEPARATIONISTHATYOUNOWHAVECODETHATISPERFECTLYDOWNGRADEABLEORUPGRADEABLEFROMBROWSERTOBROWSERYOUCANUSETHISTOOFFERADVANCEDCONTENTTOBROWSERSTHATSUPPORTIT,WHILESTILLDOWNGRADINGGRACEFULLYFORBROWSERSTHATDONTWRITINGMODERN,UNOBTRUSIVECODECONSISTSOFTWOASPECTSTHEDOCUMENTOBJECTMODELDOM,ANDJAVASCRIPTEVENTSINTHISBOOKIEXPLAINBOTHOFTHESEASPECTSINDEPTHCHAPTER1NMODERNJAVASCRIPTPROGRAMMING7FIGURE12ASCREENSHOTOFTHEPUBLICJSANCODEREPOSITORY7273CH01FINALQXD11/16/06823AMPAGE7THEDOCUMENTOBJECTMODELTHEDOMISAPOPULARWAYOFREPRESENTINGXMLDOCUMENTSITISNOTNECESSARILYTHEFASTEST,LIGHTEST,OREASIESTTOUSE,BUTITISTHEMOSTUBIQUITOUS,WITHANIMPLEMENTATIONEXISTINGINMOSTWEBDEVELOPMENTPROGRAMMINGLANGUAGESSUCHASJAVA,PERL,PHP,RUBY,PYTHON,ANDJAVASCRIPTTHEDOMWASCONSTRUCTEDTOPROVIDEANINTUITIVEWAYFORDEVELOPERSTONAVIGATEANXMLHIERARCHYSINCEVALIDHTMLISSIMPLYASUBSETOFXML,HAVINGANEFFICIENTWAYTOPARSEANDBROWSEDOMDOCUMENTSISABSOLUTELYESSENTIALFORMAKINGJAVASCRIPTDEVELOPMENTEASIERULTIMATELY,THEMAJORITYOFINTERACTIONTHATOCCURSINJAVASCRIPTISBETWEENJAVASCRIPTANDTHEDIFFERENTHTMLELEMENTSCONTAINEDWITHINAWEBPAGEANDTHEDOMISANEXCELLENTTOOLFORMAKINGTHISPROCESSSIMPLERSOMEEXAMPLESOFUSINGTHEDOMTONAVIGATEANDFINDDIFFERENTELEMENTSWITHINAPAGEANDTHENMANIPULATETHEMCANBEFOUNDINLISTING14LISTING14USINGTHEDOCUMENTOBJECTMODELTOLOCATEANDMANIPULATEDIFFERENTDOMELEMENTSINTRODUCTIONTOTHEDOM/WECANTMANIPULATETHEDOMUNTILTHEDOCUMENT/ISFULLYLOADEDWINDOWONLOADFUNCTION/FINDALLTHEELEMENTSINTHEDOCUMENTVARLIDOCUMENTGETELEMENTSBYTAGNAME“LI“/ANDADDAAREDBORDERAROUNDALLOFTHEMFORVARJ0JINTRODUCTIONTOTHEDOMTHEREAREANUMBEROFREASONSWHYTHEDOMISAWESOME,HEREARESOMECHAPTER1NMODERNJAVASCRIPTPROGRAMMING87273CH01FINALQXD11/16/06823AMPAGE8ITCANBEFOUNDEVERYWHEREITSEASYTOUSEITCANHELPYOUTOFINDWHATYOUWANT,REALLYQUICKLYTHEDOMISTHEFIRSTSTEPTODEVELOPINGUNOBTRUSIVEJAVASCRIPTCODEBYBEINGABLETOQUICKLYANDSIMPLYNAVIGATEANHTMLDOCUMENT,ALLRESULTINGJAVASCRIPT/HTMLINTERACTIONSBECOMETHATMUCHSIMPLEREVENTSEVENTSARETHEGLUETHATHOLDSTOGETHERALLUSERINTERACTIONWITHINANAPPLICATIONINANICELYDESIGNEDJAVASCRIPTAPPLICATION,YOUREGOINGTOHAVEYOURDATASOURCEANDITSVISUALREPRESENTATIONINSIDEOFTHEHTMLDOMINORDERTOSYNCHRONIZETHESETWOASPECTS,YOUREGOINGTOHAVETOLOOKFORUSERINTERACTIONSANDATTEMPTTOUPDATETHEUSERINTERFACEACCORDINGLYTHECOMBINATIONOFUSINGTHEDOMANDJAVASCRIPTEVENTSISTHEFUNDAMENTALUNIONTHATMAKESALLMODERNWEBAPPLICATIONSWHATTHEYAREALLMODERNBROWSERSPROVIDEANUMBEROFEVENTSTHATAREFIREDWHENEVERCERTAININTERACTIONSOCCUR,SUCHASTHEUSERMOVINGTHEMOUSE,STRIKINGTHEKEYBOARD,OREXITINGTHEPAGEUSINGTHESEEVENTS,YOUCANREGISTERCODETHATWILLBEEXECUTEDWHENEVERTHEEVENTOCCURSANEXAMPLEOFTHISINTERACTIONISSHOWNINLISTING15,WHERETHEBACKGROUNDCOLOROFTHESCHANGEWHENEVERTHEUSERMOVESHISMOUSEOVERTHEMLISTING15USINGTHEDOMANDEVENTSTOPROVIDESOMEVISUALEFFECTSINTRODUCTIONTOTHEDOM/WECANTMANIPULATETHEDOMUNTILTHEDOCUMENT/ISFULLYLOADEDWINDOWONLOADFUNCTION/FINDALLTHEELEMENTS,TOATTACHTHEEVENTHANDLERSTOTHEMVARLIDOCUMENTGETELEMENTSBYTAGNAME“LI“FORVARI0IELEMENT,/WHICHCHANGESTHESBACKGROUNDTOBLUELIIONMOUSEOVERFUNCTIONTHISSTYLEBACKGROUNDCOLORBLUECHAPTER1NMODERNJAVASCRIPTPROGRAMMING97273CH01FINALQXD11/16/06823AMPAGE9/ATTACHAMOUSEOUTEVENTHANDLERTOTHEELEMENT/WHICHCHANGESTHESBACKGROUNDBACKTOITSDEFAULTWHITELIIONMOUSEOUTFUNCTIONTHISSTYLEBACKGROUNDCOLORWHITEINTRODUCTIONTOTHEDOMTHEREAREANUMBEROFREASONSWHYTHEDOMISAWESOME,HEREARESOMEITCANBEFOUNDEVERYWHEREITSEASYTOUSEITCANHELPYOUTOFINDWHATYOUWANT,REALLYQUICKLYJAVASCRIPTEVENTSARECOMPLEXANDDIVERSEMUCHOFTHECODEANDAPPLICATIONSINTHISBOOKUTILIZEEVENTSINONEWAYORANOTHERCHAPTER6ANDAPPENDIXBARECOMPLETELYDEDICATEDTOEVENTSANDTHEIRINTERACTIONSJAVASCRIPTANDCSSBUILDINGUPONYOURBASEOFDOMANDEVENTINTERACTIONSCOMESDYNAMICHTMLATITSCORE,DYNAMICHTMLREPRESENTSTHEINTERACTIONSTHATOCCURBETWEENJAVASCRIPTANDTHECSSINFORMATIONATTACHEDTODOMELEMENTSCASCADINGSTYLESHEETSCSSSERVEASTHESTANDARDFORLAYINGOUTSIMPLE,UNOBTRUSIVEWEBPAGESTHATSTILLAFFORDYOUTHEDEVELOPERTHEGREATESTAMOUNTOFPOWERWHILEPROVIDINGYOURUSERSWITHTHELEASTAMOUNTOFCOMPATIBILITYISSUESULTIMATELY,DYNAMICHTMLISABOUTEXPLORINGWHATCANBEACHIEVEDWHENJAVASCRIPTANDCSSINTERACTWITHEACHOTHERANDHOWYOUCANBESTUSETHATCOMBINATIONTOCREATEIMPRESSIVERESULTSFORSOMEEXAMPLESOFADVANCEDINTERACTIONS,SUCHASDRAGANDDROPELEMENTSANDANIMATIONS,TAKEALOOKATCHAPTER7,WHERETHEYAREDISCUSSEDINDEPTHAJAXAJAX,ORASYNCHRONOUSJAVASCRIPTANDXML,ISATERMCOINEDINTHEARTICLE“AJAXANEWAPPROACHTOWEBAPPLICATIONS”HTTP/WWWADAPTIVEPATHCOM/PUBLICATIONS/ESSAYS/ARCHIVES/000385PHPBYJESSEJAMESGARRETT,COFOUNDERANDPRESIDENTOFADAPTIVEPATH,ANINFORMATIONARCHITECTUREFIRMITDESCRIBESTHEADVANCEDINTERACTIONSTHATOCCURBETWEENTHECLIENTANDTHESERVER,WHENREQUESTINGANDSUBMITTINGADDITIONALINFORMATIONCHAPTER1NMODERNJAVASCRIPTPROGRAMMING107273CH01FINALQXD11/16/06823AMPAGE10THETERMAJAXENCOMPASSESHUNDREDSOFPERMUTATIONSFORDATACOMMUNICATION,BUTALLCENTERAROUNDACENTRALPREMISETHATADDITIONALREQUESTSAREMADEFROMTHECLIENTTOTHESERVEREVENAFTERTHEPAGEHASCOMPLETELYLOADEDTHISALLOWSAPPLICATIONDEVELOPERSTOCREATEADDITIONALINTERACTIONSTHATCANINVOLVETHEUSERBEYONDTHESLOW,TRADITIONALFLOWOFANAPPLICATIONFIGURE13ISADIAGRAMFROMGARRETTSAJAXARTICLETHATSHOWSHOWTHEFLOWOFINTERACTIONWITHINANAPPLICATIONCHANGESDUETOTHEADDITIONALREQUESTSTHATAREMADEINTHEBACKGROUNDANDMOSTLIKELYWITHOUTTHEUSERSKNOWLEDGECHAPTER1NMODERNJAVASCRIPTPROGRAMMING11FIGURE13ADIAGRAMFROMTHEARTICLE“AJAXANEWAPPROACHTOWEBAPPLICATIONS,”SHOWINGTHEADVANCED,ASYNCHRONOUSINTERACTIONTHATOCCURSBETWEENTHECLIENTANDASERVER7273CH01FINALQXD11/16/06823AMPAGE11SINCETHEORIGINALRELEASEOFTHEGARRETTARTICLE,THEINTERESTOFUSERS,DEVELOPERS,DESIGNERS,ANDMANAGERSHASBEENPIQUED,ALLOWINGFORANEXPLOSIONOFNEWAPPLICATIONSTHATMAKEUSEOFTHISADVANCEDLEVELOFINTERACTIONIRONICALLY,WHILETHEREHASBEENTHISRESURGENCEININTEREST,THETECHNOLOGYBEHINDAJAXISRATHEROLDHAVINGBEENUSEDCOMMERCIALLYSINCEAROUNDTHEYEAR2000THEPRIMARYDIFFERENCE,HOWEVER,ISTHATTHEOLDERAPPLICATIONSUTILIZEDBROWSERSPECIFICMEANSOFCOMMUNICATINGWITHTHESERVERSUCHASINTERNETEXPLORERONLYFEATURESSINCEALLMODERNBROWSERSSUPPORTXMLHTTPREQUESTTHEPRIMARYMETHODFORSENDINGORRECEIVINGXMLDATAFROMASERVER,THEPLAYINGFIELDHASBEENLEVELED,ALLOWINGFOREVERYONETOENJOYITSBENEFITSIFONECOMPANYHASBEENATTHEFOREFRONTOFMAKINGCOOLAPPLICATIONSUSINGAJAXTECHNOLOGY,ITSGOOGLEONEHIGHLYINTERACTIVEDEMOTHATITRELEASEDJUSTBEFORETHEORIGINALAJAXARTICLECAMEOUTISGOOGLESUGGESTTHEDEMOALLOWSYOUTOTYPEYOURQUERYANDHAVEITBEAUTOCOMPLETEDINREALTIMETHISISAFEATURETHATCOULDNEVERBEACHIEVEDUSINGOLDPAGERELOADSASCREENSHOTOFGOOGLESUGGESTINACTIONISSHOWNINFIGURE14ADDITIONALLY,ANOTHERREVOLUTIONARYAPPLICATIONOFGOOGLEISGOOGLEMAPS,WHICHALLOWSTHEUSERTOMOVEAROUNDAMAPANDSEERELEVANT,LOCALRESULTSDISPLAYEDINREALTIMETHELEVELOFSPEEDANDUSABILITYTHATTHISAPPLICATIONPROVIDESBYUSINGAJAXTECHNIQUESISUNLIKEANYOTHERMAPPINGAPPLICATIONAVAILABLEANDHASCOMPLETELYREVOLUTIONIZEDTHEONLINEMAPPINGMARKETASARESULTASCREENSHOTOFGOOGLEMAPSISSHOWNINFIGURE15EVENTHOUGHVERYLITTLEHASPHYSICALLYCHANGEDWITHINTHEJAVASCRIPTLANGUAGE,DURINGTHEPASTCOUPLEYEARS,THEACCEPTANCEOFJAVASCRIPTASAFULLBLOWNPROGRAMMINGENVIRONMENTBYSUCHCOMPANIESASGOOGLEANDYAHOOSHOWSJUSTHOWMUCHHASCHANGEDINREGARDTOITSPERCEPTIONANDPOPULARITYCHAPTER1NMODERNJAVASCRIPTPROGRAMMING12FIGURE14ASCREENSHOTOFGOOGLESUGGEST,ANAPPLICATIONAVAILABLEATTHETIMEOFGARRETTSAJAXARTICLETHATUTILIZEDTHEASYNCHRONOUSXMLTECHNIQUES7273CH01FINALQXD11/16/06823AMPAGE12BROWSERSUPPORTTHESADTRUTHOFJAVASCRIPTDEVELOPMENTISTHATSINCEITISSOTIEDTOTHEBROWSERSTHATIMPLEMENTANDSUPPORTIT,ITISALSOATTHEMERCYOFWHICHEVERBROWSERSARECURRENTLYTHEMOSTPOPULARSINCEUSERSDONTNECESSARILYUSETHEBROWSERSWITHTHEBESTJAVASCRIPTSUPPORT,WEREFORCEDTOPICKANDCHOOSEWHICHFEATURESAREMOSTIMPORTANTWHATMANYDEVELOPERSHAVEBEGUNTODOISCUTOFFSUPPORTFORBROWSERSTHATSIMPLYCAUSETOOMUCHTROUBLEWHENDEVELOPINGFORTHEMITSADELICATEBALANCEBETWEENSUPPORTINGBROWSERSDUETOTHESIZEOFTHEIRUSERBASEANDSUPPORTINGTHEMBECAUSETHEYHAVEAFEATURETHATYOULIKERECENTLYYAHOORELEASEDAJAVASCRIPTLIBRARYTHATCANBEUSEDTOEXTENDYOURWEBAPPLICATIONSALONGWITHTHELIBRARY,ITALSORELEASEDSOMEDESIGNPATTERNGUIDELINESFORWEBDEVELOPERSTOFOLLOWTHEMOSTIMPORTANTDOCUMENTTOCOMEOUTOFITINMYOPINIONISYAHOOSCHAPTER1NMODERNJAVASCRIPTPROGRAMMING13FIGURE15GOOGLEMAPS,WHICHUTILIZESANUMBEROFAJAXTECHNIQUESTODYNAMICALLYLOADLOCATIONINFORMATION7273CH01FINALQXD11/16/06823AMPAGE13OFFICIALLISTOFBROWSERSTHATITDOESANDDOESNTSUPPORTWHILEANYONE,ANDANYCORPORATION,CANDOSOMETHINGSIMILAR,HAVINGADOCUMENTPROVIDEDBYONEOFTHEMOSTTRAFFICKEDWEBSITESONTHEINTERNETISENTIRELYINVALUABLEYAHOODEVELOPEDAGRADEDBROWSERSUPPORTSTRATEGYTHATASSIGNSACERTAINGRADETOABROWSERANDPROVIDESDIFFERENTCONTENTTOITBASEDUPONITSCAPABILITIESYAHOOGIVESBROWSERSTHREEGRADESA,X,ANDCAGRADEBROWSERSAREFULLYSUPPORTEDANDTESTED,ANDALLYAHOOAPPLICATIONSAREGUARANTEEDTOWORKINTHEMANXGRADEBROWSERISANAGRADEBROWSERTHATYAHOOKNOWSEXISTSBUTSIMPLYDOESNOTHAVETHECAPACITYTOTESTTHOROUGHLY,ORISABRANDNEWBROWSERTHATITSNEVERENCOUNTEREDBEFOREXGRADEBROWSERSARESERVEDWITHTHESAMECONTENTASAGRADEBROWSERS,INHOPESTHATTHEYLLBEABLETOHANDLETHEADVANCEDCONTENTCGRADEBROWSERSAREKNOWNAS“BAD”BROWSERSTHATDONOTSUPPORTTHEFEATURESNECESSARYTORUNYAHOOAPPLICATIONSTHESEBROWSERSARESERVEDTHEFUNCTIONALAPPLICATIONCONTENTSWITHOUTJAVASCRIPT,ASYAHOOAPPLICATIONSAREFULLYUNOBTRUSIVEINTHATTHEYWILLCONTINUETOWORKWITHOUTTHEPRESENCEOFJAVASCRIPTINCIDENTALLY,YAHOOSBROWSERGRADECHOICESJUSTSOHAPPENTOCOINCIDEWITHMYOWN,WHICHMAKESITPARTICULARLYAPPEALINGWITHINTHISBOOK,IUSETHETERMMODERNBROWSERALOTWHENIUSETHATPHRASE,IMEANANYBROWSERTHATHASGRADEASUPPORTDEEMEDBYTHEYAHOOBROWSERCHARTBYGIVINGYOUACONSISTENTSETOFFEATURESWITHWHICHTOWORK,THELEARNINGANDDEVELOPMENTEXPERIENCEWILLBECOMEMUCHMOREINTERESTINGANDMUCHLESSPAINFULALLBYAVOIDINGBROWSERINCOMPATIBILITIESIHIGHLYRECOMMENDTHATYOUREADTHROUGHGRADEDBROWSERSUPPORTDOCUMENTSWHICHCANBEFOUNDATHTTP/DEVELOPERYAHOOCOM/YUI/ARTICLES/GBS/GBSHTML,INCLUDINGTHEBROWSERSUPPORTCHARTSHOWNINFIGURE16,TOGETAFEELFORWHATYAHOOISATTEMPTINGTOACCOMPLISHBYMAKINGTHISINFORMATIONAVAILABLETOTHEGENERALWEBDEVELOPINGPUBLIC,YAHOOISPROVIDINGANINVALUABLE“GOLDSTANDARD”FORALLOTHERSTOREACH,WHICHISAGREATTHINGTOHAVEFORMOREINFORMATIONABOUTALLTHEBROWSERSTHATARESUPPORTED,SEEAPPENDIXCOFTHISBOOKWHERETHESHORTCOMINGSANDADVANTAGESOFEACHBROWSERAREDISCUSSEDINDEPTHMOREOFTENTHANNOT,YOULLFINDALLOFTHEAGRADEBROWSERSTOBEONTHECUTTINGEDGEOFDEVELOPMENT,PROVIDINGMORETHANENOUGHFEATURESFORYOUTODEVELOPWITHWHENCHOOSINGWHATBROWSERSYOUWISHTOSUPPORT,THEENDRESULTULTIMATELYBOILSDOWNTOASETOFFEATURESTHATYOURAPPLICATIONISABLETOSUPPORTIFYOUWISHTOSUPPORTNETSCAPENAVIGATOR4ORINTERNETEXPLORER5FOREXAMPLE,ITWOULDSEVERELYLIMITTHENUMBEROFFEATURESTHATYOUCOULDUSEINYOURAPPLICATION,DUETOTHEIRLACKOFSUPPORTFORMODERNPROGRAMMINGTECHNIQUESCHAPTER1NMODERNJAVASCRIPTPROGRAMMING147273CH01FINALQXD11/16/06823AMPAGE14HOWEVER,KNOWINGWHICHBROWSERSAREMODERNALLOWSYOUTOUTILIZETHEPOWERFULFEATURESTHATAREAVAILABLEINTHEM,GIVINGYOUACONSISTENTBASEFROMWHICHYOUCANDOFURTHERDEVELOPMENTTHISCONSISTENTDEVELOPMENTBASECANBEDEFINEDBYTHEFOLLOWINGSETOFFEATURESCOREJAVASCRIPT15THEMOSTCURRENT,ACCEPTEDVERSIONOFJAVASCRIPTITHASALLTHEFEATURESNECESSARYTOSUPPORTFULLYFUNCTIONALOBJECTORIENTEDJAVASCRIPTIN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论