已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第四单元口语交际《辩论》教学设计 统编版语文九年级下册
- 服务式写字楼物业管理制度
- 蓝莓常见虫害防治指南
- 医疗机构:传染病疑似病例筛查指南
- 外包人员规章制度
- 教师课件模板下载
- 网络机房应急预案
- 基于人工智能技术的抑郁症研究进展
- 财务预测与预算执行情况
- 儿科护士温柔关爱小患者
- 高中地理 人教版 选修1《地表形态的塑造》第1课时
- 无人值守配电室建设规范
- 2023-2024学年浙江省富阳市小学数学六年级下册期末高分试卷
- 苏教版四年级下册数学课件练习十一
- 2023年哈密地区哈密市建设系统事业单位招聘考试笔试题库及答案解析
- GB/T 21954.1-2008金属切割带锯条第1部分:术语
- GB/T 1844.4-2008塑料符号和缩略语第4部分:阻燃剂
- GB/T 18204.6-2013公共场所卫生检验方法第6部分:卫生监测技术规范
- GA/T 1133-2014基于视频图像的车辆行驶速度技术鉴定
- 大学伦理委员会章程(试行)模板
- 公租房申请表(3篇)
评论
0/150
提交评论