![]() ![]() |
Web API經(jīng)典實例 ![]() 本書的主要內(nèi)容有:通過瀏覽器原生能力提升Web應(yīng)用體驗。系統(tǒng)學習現(xiàn)代瀏覽器API所提供的廣泛功能。深入探索實驗性階段的前瞻性API。擺脫第三方庫依賴,發(fā)掘如原生對話框組件等新元素。依賴原生硬件設(shè)備能力,構(gòu)建更高功能和交互性的Web應(yīng)用。深刻理解瀏覽器權(quán)限模型,解鎖地理位置信息和通知推送等核心功能。 JavaScript應(yīng)用程序進階之路。 前言自1995 年底推行以來,JavaScript 已經(jīng)走過了一段漫長的道路。早期的Web 瀏覽器內(nèi)核提供的API 非常有限,很多高級的功能通常要依賴第三方JavaScript庫,甚至在特殊情況下需要瀏覽器插件來完成。Web API 是瀏覽器提供的一系列全局對象和函數(shù)。通過這些對象和函數(shù),可以運行JavaScript 代碼與文檔對象模型(DOM)交互、執(zhí)行網(wǎng)絡(luò)通信、并與本機設(shè)備集成等,F(xiàn)代瀏覽器的強大功能現(xiàn)代Web API 對于Web 平臺有兩個主要優(yōu)勢:無需更多插件之前,很多瀏覽器功能要借助本機應(yīng)用程序或笨重的瀏覽器插件才能使用(還記得ActiveX 和Flash 嗎)。減少第三方依賴過去需要第三方JavaScript 庫才能實現(xiàn)的許多功能,現(xiàn)代瀏覽器都已提供了。因此,像jQuery、Lodash 和Moment 這樣的曾經(jīng)流行的庫通常不再需要了。第三方庫的弊端第三方庫對于支持老舊瀏覽器或新功能非常有用,但也存在一些弊端:更多的代碼下載使用第三方庫會增加瀏覽器需要加載的JavaScript 代碼量。無論是與應(yīng)用程序打包在一起,還是從內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)單獨加載,瀏覽器都仍然需要下載它。這可能會導致加載時間變長,并增加移動設(shè)備上的電池消耗。風險增加開源的庫,即使是流行的庫,也可能停止維護。當發(fā)現(xiàn)漏洞或安全問題時,無法保證會有更新。相比之下,瀏覽器由大型公司(主要瀏覽器來自Google、Mozilla、Apple 和Microsoft)支持,因此更有可能修復這些問題。這并不是說使用第三方庫就一定是不好的。如果需要支持舊版瀏覽器,使用第三方庫則有很多好處。就像軟件開發(fā)一樣,庫的使用需要權(quán)衡利弊。本書的目標讀者本書非常適合對JavaScript 有一定了解并想要充分利用網(wǎng)絡(luò)平臺的軟件開發(fā)人員。本書假設(shè)你已經(jīng)具備JavaScript 語言的基礎(chǔ)知識,包括語法、特性和標準庫函數(shù),同時也了解構(gòu)建交互式瀏覽器端JavaScript 應(yīng)用程序的DOM 接口。本書涵蓋了各種各樣的內(nèi)容,適合各個技術(shù)水平的開發(fā)者。即使是剛?cè)腴T的新手也能找到適合自己的部分。示例代碼本書每章都包含一些的樣例(完成指定任務(wù)的代碼示例)。每個樣例由三個部分組成:問題描述樣例需要解決的問題。方案具體的解決方案,包括代碼和注解。討論對主題的深入討論。可能包含其他代碼示例以及與其他技術(shù)的比較。本書所有的代碼示例和在線演示均可以在配套網(wǎng)站https://WebAPIs.info 上找到。其他資源本質(zhì)上講,Web 無時不在改變。將會有很多優(yōu)秀的在線資源出現(xiàn)來解答或澄清新的問題。CanIUse.com本書寫作之時,書中的一些API 仍在開發(fā)中或?qū)嶒炿A段。使用這些API 時注意樣例中的兼容性說明。大多數(shù)功能,可以通過https://CanIUse.com 查看最新的兼容性數(shù)據(jù)。也可以按功能名稱搜索,并查看有關(guān)瀏覽器版本支持以及API 對瀏覽器版本的任何限制或警告。MDN Web 文檔MDN Web 文檔(https://oreil.ly/rLxi7)是包含所有Web API 的權(quán)威文檔。它涵蓋了本書中的所有API 詳細信息以及其他主題,例如CSS 和HTML。同時也包含一些深入的文章和教程以及API 規(guī)范。API 規(guī)范有任何疑問,相關(guān)功能或API 的規(guī)范是最權(quán)威的資源。這些規(guī)范雖然讀起來比較枯燥,但它詳細地記錄了各種特殊情況和預期行為。雖然不同的API 有著不一樣的標準,但都能在超文本應(yīng)用程序技術(shù)工作組(WHATWG)(https://oreil.ly/PR0x7)或者萬維網(wǎng)聯(lián)盟(W3C)(https://oreil.ly/dFokl)上找到對應(yīng)的規(guī)范。維護和制定ECMAScript 標準(也是JavaScript 語言標準)的是Ecma 國際39技術(shù)委員會,即大名鼎鼎的TC39(https://tc39.es)。排版約定本書采用以下排版約定。斜體(Italic)表示新術(shù)語、URL、電子郵件地址、文件名和文件擴展名。等寬字體(Constant width)表示程序清單,在段落內(nèi)表示程序元素,例如變量、函數(shù)名稱、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關(guān)鍵字。粗體等寬字體(Constant width bold)表示應(yīng)由用戶原封不動輸入的命令或其他文本。斜體等寬字體(Constant width italic)表示應(yīng)該替換成用戶提供值的文本,或者由上下文決定的值。使用示例代碼本書資料(包括示例代碼,練習等)均可在https://github.com/joeattardi/webapicookbook 下載,也可查看網(wǎng)站(https://WebAPIs.info),本書中的大多示例已開發(fā)為完整的,可工作的在線示例。有任何技術(shù)疑問, 或者代碼示例運行的問題, 請隨時發(fā)送email 到bookquestions@oreilly.com。本書旨在幫助您完成工作。通常情況下,本書提供的示例代碼,可以在自己個人的程序和文檔中使用它。除非使用大量的代碼,否則無需聯(lián)系我們獲得許可。例如,編寫一個使用本書多個代碼片段的程序不需要許可。銷售或分發(fā)來自O(shè)Reilly 圖書的示例需要許可。引用本書并引用示例代碼來回答問題不需要許可。將本書大量示例代碼納入產(chǎn)品文檔需要許可。我們很希望但并不強制要求你在引用書中內(nèi)容時加上引用說明。引用說明通常包括標題、作者、出版商和ISBN。例如,Web API Cookbook by Joseph Attardi (OReilly). Copyright 2024 Joe Attardi, 978-1-098-15069-3。如果你覺得自己對示例代碼的用法超出了上述許可的范圍, 請隨時通過permissions@oreilly.com 聯(lián)系我們。OReilly 在線學習平臺(OReilly Online Learning)近40 年來,OReilly Media 致力于提供技術(shù)和商業(yè)培訓、知識和卓越見解,來幫助眾多公司取得成功。公司獨有的專家和改革創(chuàng)新者網(wǎng)絡(luò)通過OReilly 書籍、文章以及在線學習平臺,分享他們的專業(yè)知識和實踐經(jīng)驗。OReilly 在線學習平臺按照您的需要提供實時培訓課程、深入學習渠道、交互式編程環(huán)境以及來自O(shè)Reilly 和其他200 多家出版商的大量書籍與視頻資料。更多信息,請訪問網(wǎng)站:https://www.oreilly.com/。聯(lián)系我們?nèi)魏斡嘘P(guān)本書的意見或疑問,請按照以下地址聯(lián)系出版社。美國:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中國:北京市西城區(qū)西直門南大街2 號成銘大廈C 座807 室(100035)奧萊利技術(shù)咨詢(北京)有限公司勘誤、示例和其他信息可訪問https://oreil.ly/web-api-cookbook 獲取。對本書中文版的勘誤可以發(fā)電子郵件到errata@oreilly.com.cn。欲了解本社圖書和課程的新聞和信息,請訪問我們的網(wǎng)站http://oreilly.com。我們的Facebook:http://facebook.com/oreilly。我們的YouTube:http://youtube.com/oreillymedia。致謝首先,我要衷心感謝我的家人和朋友對我的支持,尤其是我的妻子Liz 和兒子Benjamin,一直容忍我日夜不停地敲打鍵盤。我在寫這本書時,打字往往非?於衣曇艉艽蟆N乙貏e感謝高級策劃編輯Amanda Quinn,是她給了我成為一名OReilly 作者的機會。多年來,我閱讀了無數(shù)OReilly 出版的書籍,從未想過有一天自己也能成為其中一員。還要感謝Louise Corrigan 將我介紹給Amanda,讓我開始寫書(幾年前與我合作出版了我的第一本書)!特別感謝高級開發(fā)編輯Virginia Wilson,她在寫作和編輯的整個過程中對我進行了細致的指導,并定期跟進進度,確保項目順利進行。我還要感謝本書的優(yōu)秀技術(shù)審稿人:Martine Dowden、Schalk Neethling、Sarah Shook 和Adam Scott。他們的寶貴意見使本書的質(zhì)量得到了很大提升。最后,我要感謝所有設(shè)計和開發(fā)這些現(xiàn)代Web API 的人。沒有他們的辛勤工作,這本書就不可能存在! Joe Attardi擁有超過20年的前端軟件開發(fā)經(jīng)驗,并開發(fā)了許多基于瀏覽器的應(yīng)用程序。他還為Nortel、Dell、Constant Contact、Salesforce和Synopsys打造過豐富的前端體驗,并專注于JavaScript和TypeScript開發(fā)。 目錄
我要評論
|