像JSP、ASP.NET、ColdFusion這樣的Web開發平臺提供了大量強大服務器端開發選項。但是,它們并沒有否定用JavaScript進行客戶端的Web開發。
JavaScript同時提供了邏輯和用戶接口功能,減輕了服務器端處理的負載。盡管我們已經使用它有多年了,但是它的開發工具還是有點落后?,F在就讓我們仔細看看JavaScript的開發和調試選項。
開發工具
如果你習慣使用諸如Visual Studio或者NetBeans這樣的集成開發環境(IDE),那么你就一定很熟悉各種調試選項,包括代碼單步調試、設置斷點,以及監視變量等。在監視代碼執行或者追蹤錯誤時,這些都是不可或缺的工具。不幸的是,這些工具在JavaScript開發人員中并不是十分普及。
調試
應用程序開發中的一個重要步驟是追蹤腳本或者代碼中的錯誤。這包括隔離代碼段,一行一行地分析它們。在使用JavaScript的時候,你可以使用在開發工具大發展之前用過的方法。
在這種情況下,最常用的一種JavaScript函數是警報信息框。你可以用它來檢查保存在變量/對象里的值,并與循環一起使用來查看對象的內容。
舉個例子,列表A里的HTML代碼沒有按照預期的效果執行:
<html><head> <title>JS Test</title> <script language="JavaScript"> function validate() { var doc = document.forms[0]; var flag = true; if (doc.fullName.value = '') flag = false; if (doc.contactNumber.value = '') flag = false; if (flag) doc.submit() else alert('Enter values before submitting.'); } </script></head> <body> <form id="frmTest"> Name: <input name="fullName" type="text" /><br /> Address: <input name="contactNumber" type="text" /><br /> <input type="button" value="Submit" onclick="validate();" /> </form></body></html> |
按理說,它會在表單被真的提交之前驗證在兩個文本字段里輸入的值。
這個表單總是不管輸入的值是什么就被提交,所以我們可以使用警報語句在腳本執行期間檢查值的內容。列表B里的腳本就使用了警報語句來監視變量的值:
以下是引用片段:
<html><head> <title>JS Test</title> <script language="JavaScript"> function validate() { var doc = document.forms[0]; var flag = true; alert('Script starting, flag = ' + flag); alert('Script starting, Full name = ' + doc.fullName.value); alert('Script starting, Contact number = ' + doc.contactNumber.value); if (doc.fullName.value = '') { alert('First check, Full Name is empty.'); flag = false; } if (doc.contactNumber.value = '') { alert('Second check, Contact Number is empty.'); flag = false; } if (flag) { alert('Validation successful, document will be submitted.'); doc.submit() } else { alert('Enter values before submitting.'); } } </script></head> <body><form id="frmTest"> Name: <input name="fullName" type="text" /><br /> Address: <input name="contactNumber" type="text" /><br /> <input type="button" value="Submit" onclick="validate();" /> </form></body></html> |
原文轉自:http://www.anti-gravitydesign.com