




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 强化高层次人才的持续发展与评价机制
- 构建园区跨区域合作与国际化发展平台
- 大学生自我定位与职业发展规划的重要性
- 校外实践基地的长期发展规划与创新模式
- 人工智能对财务风险预测与控制能力的增强作用
- 非物质文化遗产传承中的教育体系创新
- 开源生态在大语言模型训练与优化中的角色分析
- 酒店客房无障碍设计中音响与紧急呼叫系统的设置
- 2025年兽医考试资格题库及答案
- 民办园如何通过创新课程设计提升竞争力
- pos机风险管理办法
- 山河已无恙+吾辈当自强+课件-2025-2026学年高二上学期用《南京照相馆》和731上一节思政课
- 2025年江西省高考物理真题
- 中国兽药典三部 2020年版
- 芳华电影介绍模板课件
- 四川省高中信息技术会考试题
- 应急管理行业解决方案及应用
- DBJ50∕T-352-2020 工程建设工法编制标准
- 7.4.2超几何分布 课件(共14张PPT)
- 行政审批中介服务规范治理自查自纠表
- 高中地理 选必一 地质构造与地貌 PPT 课件
评论
0/150
提交评论