請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/60136完整後設資料紀錄
| DC 欄位 | 值 | 語言 |
|---|---|---|
| dc.contributor.advisor | 莊裕澤 | |
| dc.contributor.author | Chun-Yan Ho | en |
| dc.contributor.author | 何均晏 | zh_TW |
| dc.date.accessioned | 2021-06-16T09:58:28Z | - |
| dc.date.available | 2017-02-08 | |
| dc.date.copyright | 2017-02-08 | |
| dc.date.issued | 2016 | |
| dc.date.submitted | 2016-12-09 | |
| dc.identifier.citation | Ariya, H. (2012). Esprima. Retrieved from Esprima: http://esprima.org
Chai.js Assertion Library. (2016). Chai Assertion Library. Retrieved from Chai Assertion Library: http://chaijs.com Dave, H., Ingvar, S., Mike, S., Michael, F., Sebastian, M., & Kyle, S. (2015). The ESTree Spec. Retrieved from The ESTree Spec: https://github.com/estree/estree Douglas, C. (2008). Appendix A: Awful Parts. In C. Douglas, JavaScript: The Good Parts. O’Reilly Media, Inc. Douglas, C. (2008). Functions. In C. Douglas, JavaScript: The Good Parts. O’Reilly Media, Inc. Douglas, C. (2008). Inheritance. In C. Douglas, JavaScript: The Good Parts. O’Reilly Media, Inc. Douglas, C. (2008). Objects. In C. Douglas, JavaScript: The Good Parts. O’Reilly Media, Inc. Ecma International. (2011). Standard ECMA-262 5.1 Edition / June 2011. Retrieved from Ecma International: http://www.ecma-international.org/ecma-262/5.1/ Google. (n.d.). chrome.devtools.inspectedWindow. Retrieved from Google Chrome: https://developer.chrome.com/extensions/devtools_inspectedWindow Google. (n.d.). chrome.devtools.panels. Retrieved from Google Chrome: https://developer.chrome.com/extensions/devtools_panels Google. (n.d.). chrome.runtime. Retrieved from Google Chrome: https://developer.chrome.com/extensions/runtime Google. (n.d.). chrome.tabs. Retrieved from Google Chrome: https://developer.chrome.com/extensions/tabs Google. (n.d.). Extending DevTools. Retrieved from Google Chrome: https://developer.chrome.com/extensions/devtools Google. (n.d.). Overview. Retrieved from Google Chrome: https://developer.chrome.com/extensions/overview Jardine, A. (2011). Visual Event - visually inspect Javascript events. Retrieved from Visual Event: https://github.com/DataTables/VisualEvent jQuery Foundation. (2014). jQuery API. Retrieved from jQuery: http://api.jquery.com Karma. (2016). Karma. Retrieved from Karma: http://karma-runner.github.io/1.0/index.html Mocha.js. (2016). Mocha. Retrieved from Mocha: https://mochajs.org Mozilla Foundation. (2016, October 6). Attr. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Attr Mozilla Foundation. (2015, February 20). CSSStyleDeclaration. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration Mozilla Foundation. (2016, June 17). DOMParser. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/DOMParser Mozilla Foundation. (2016, October 5). DOMTokenList. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList Mozilla Foundation. (2016, September 13). Element. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Element Mozilla Foundation. (2016, August 23). EventTarget. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget Mozilla Foundation. (2016, September 4). HTMLElement. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement Mozilla Foundation. (2016, September 4). Node. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Node Mozilla Foundation. (2016, August 29). Window. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Window sinonjs. (2016). Sinon.JS. Retrieved from Sinon.JS: http://sinonjs.org Yusuke, S. (2012). Escodegen. Retrieved from Escodegen: https://github.com/estools/escodegen 林信良. (n.d.). 在 Scope chain 查找變數. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/ScopeChain.html 林信良. (n.d.). 函式 prototype 特性. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/Prototype.html 林信良. (n.d.). 初探一級函式. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/FirstClassFunction.html 林信良. (n.d.). 隱藏諸多細節的建構式. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/Constructor.html 林信良. (n.d.). Closure 與一級函式. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/Closure.html 林信良. (n.d.). this 是什麼?. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/This.html | |
| dc.identifier.uri | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/60136 | - |
| dc.description.abstract | 隨著網路技術之發展、網頁與使用者互動的需求日增,網頁前端開發越來越複雜,動輒包含數千甚至數萬行的JavaScript程式碼。對於網頁開發者而言,當頁面中的HTML元素,因為JavaScript的操作而產生非預期的反饋行為時,開發者往往很難從數千數萬行的JavaScript程式碼中,找出實際造成錯誤的程式碼。
本篇論文將以現有的JavaScript程式碼解析技術,透過實作一Chrome擴充功能,將網頁中的JavaScript程式碼轉換為Abstract Syntax Tree(AST),以AST的角度來模擬原本程式碼的行為,並在模擬解析AST的過程中,在適當的時機加入記錄程式碼資訊的邏輯判斷,任何使用DOM或jQuery API的JavaScript程式碼資訊(包括位於哪個檔案、原始碼行與列的範圍、以及原始程式碼字串),都會以頁面中的HTML元素為分類,動態地記錄下來。 藉由安裝並使用本研究所開發的Chrome擴充功能,網頁開發者追蹤頁面中的JavaScript程式碼將變得更有效率,以往必須尋遍所有程式碼的除錯過程,現在只需要在產生錯誤反饋行為的HTML元素上,過濾出真正造成錯誤的JavaScript程式碼即可。 | zh_TW |
| dc.description.abstract | In recent years, the technologies of web development evolve dramatically. Interaction with users is now an essential feature on every web page. Due to this circumstance, development of a web page is getting more and more complicated, usually involving thousands or even tens of thousands JavaScript code. It is hard for web front-end developers to find out possible errors from thousands of code, once there are some unexpected behaviors of HTML elements triggered by JavaScript on web page.
In this thesis, we develop a Chrome Extension. We use this extension to parse all JavaScript code on web page into an Abstract Syntax Tree (AST). With the AST, we use our own parsers to parse the AST to simulate the behaviors of original web page, and we record information of JavaScript code (including file the code located in, location of the code in file, and the code text), which using DOM or jQuery API, grouped by HTML elements on web page while simulating. With the Chrome Extension this thesis developed, it becomes more efficient for web front-end developer to track the JavaScript code on web page. Web front-end developers is needless to search all JavaScript code on web page anymore. Instead, they can select specific HTML elements on page to get information of JavaScript code only related to the unexpected behaviors of web page. | en |
| dc.description.provenance | Made available in DSpace on 2021-06-16T09:58:28Z (GMT). No. of bitstreams: 1 ntu-105-R03725029-1.pdf: 17469802 bytes, checksum: 4b408a4000f3365502c4f49e23ae99c3 (MD5) Previous issue date: 2016 | en |
| dc.description.tableofcontents | 論文口試委員審定書 i
致謝 ii 論文摘要 iii THESIS ABSTRACT iv 目錄 v 圖目錄 vi 第一章 - 緒論 1 1.1研究背景與動機 1 1.2 研究目的 4 1.3 研究架構 5 第二章 - 文獻探討 6 2.1 現有工具探討 6 2.2 JavaScript語言特性 13 2.3 JavaScript與HTML元素 23 2.4 Chrome Extension 29 2.5 Esprima 31 第三章 - 研究設計 34 3.1 Chrome Extension架構設計實作 34 3.2 從AST模擬JavaScript原始碼行為 38 3.3 判斷並紀錄DOM API與jQuery API的使用 51 3.4 小結 55 第四章 - 研究成果 56 4.1 相關連結與資訊 56 4.2 如何安裝 56 4.3 使用流程與展示 57 4.4 系統效益與評估 65 第五章 - 結論 67 5.1 結論 67 5.2 未來展望 67 參考文獻 69 | |
| dc.language.iso | zh-TW | |
| dc.subject | HTML | zh_TW |
| dc.subject | JavaScript | zh_TW |
| dc.subject | DOM API | zh_TW |
| dc.subject | jQuery API | zh_TW |
| dc.subject | 網頁開發 | zh_TW |
| dc.subject | 網頁除錯 | zh_TW |
| dc.subject | Chrome擴充功能 | zh_TW |
| dc.subject | Chrome Extension | en |
| dc.subject | HTML | en |
| dc.subject | JavaScript | en |
| dc.subject | DOM API | en |
| dc.subject | jQuery API | en |
| dc.subject | Web Development | en |
| dc.subject | Web Debug | en |
| dc.title | JavaScript使用DOM或jQuery API操作網頁中HTML元素之行為追蹤工具開發 | zh_TW |
| dc.title | On the Tool Development for Tracking the Behavior of JavaScript that Uses DOM or jQuery API to manipulate HTML Elements on Web Pages | en |
| dc.type | Thesis | |
| dc.date.schoolyear | 105-1 | |
| dc.description.degree | 碩士 | |
| dc.contributor.oralexamcommittee | 蔡益坤,孔令傑,曹承礎 | |
| dc.subject.keyword | HTML,JavaScript,DOM API,jQuery API,網頁開發,網頁除錯,Chrome擴充功能, | zh_TW |
| dc.subject.keyword | HTML,JavaScript,DOM API,jQuery API,Web Development,Web Debug,Chrome Extension, | en |
| dc.relation.page | 70 | |
| dc.identifier.doi | 10.6342/NTU201603800 | |
| dc.rights.note | 有償授權 | |
| dc.date.accepted | 2016-12-13 | |
| dc.contributor.author-college | 管理學院 | zh_TW |
| dc.contributor.author-dept | 資訊管理學研究所 | zh_TW |
| 顯示於系所單位: | 資訊管理學系 | |
文件中的檔案:
| 檔案 | 大小 | 格式 | |
|---|---|---|---|
| ntu-105-1.pdf 未授權公開取用 | 17.06 MB | Adobe PDF |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。
