讀《高程3》系列之第二章---在HTML中使用script

1、script元素javascript

  1,在html頁面插入javascript的主要方法,就是利用<script>元素,並定義了以下5個屬性(language屬性被廢棄):html

    *async:可選。表示應該當即下載腳本,但不妨礙也看但其餘操做,好比下載其餘資源或等待加載其餘腳本。只對外部腳本文件有效;java

    *charset:可選。表示經過src屬性制定的代碼的字符集。因爲大多數瀏覽器會忽略它的值,所以不多用這個屬性;程序員

    *defer:可選。表示腳本能夠延遲到文檔徹底被解析和顯示以後再執行,只對外部腳本文件有效。json

    *src:可選。表示包含要執行代碼的外部文件。跨域

    *type:可選。能夠當作是language的替代屬性;表示編寫代碼使用的腳本語言的內容類型(也稱爲MIME類型),默認值是text/javascript。瀏覽器

  2,在使用<script>元素嵌入JavaScript代碼時,只須要爲<script>制定type屬性。而後把代碼放在元素內部便可,JavaScript代碼將從上至下依次解釋。解釋器對<script>元素內部對全部代碼值以前,頁面中的其他內容都不會被瀏覽器加載或顯示。只要不存在defer和async屬性,瀏覽器都會按照<script>元素在頁面中出現的前後順序對他們依次進行解析。換句話說,在第一個<script>元素包含的代碼解析完成後,第二個<script>包含的代碼纔會被解析,而後第三個,第四個。。。緩存

  3,在JavaScript的代碼中的任何地方都不能出現"<script>"字符串,都會報錯。由於當瀏覽器遇到該字串時,就會認爲那是</script>結束標籤。要想解決問題,就要用"\"轉義字符,如:alert("<\/script>");async

  4,若是經過<script>元素來包含外部的JavaScript文件,那麼src屬性是必需的,這個屬性的值只想外部JavaScript文件的連接;與嵌入式的JavaScript代碼同樣,在解析外部文件時,頁面的處理也會暫時中止。jsonp

  5,在XHTML文檔中,能夠省略結束標籤變成如:<script type="text/javascript" src=''/>;可是在HTML中不能這樣使用,瀏覽器不能解析;

  6,帶有src屬性的<script>元素不該該在其元素標籤中間在添加額外的JavaScript代碼。若是包含了嵌入的代碼,則只會執行外部文件嵌入中間的文件則不會生效;

  7,經過<script>元素的src屬性還能夠包含來自外部域的JavaScript文件,能夠只想當前HTML頁面所在域以外的某個域中的完整url,不受通源策略的影響;這一點和img元素很像。jsonp實現跨域請求就是利用了這個特性(後面再講),不過,在請求不一樣域文件時,可能被不懷好意的程序員給篡改文件,因此爲了不,則要麼你是那個域的全部者,要麼那個域的全部者值得信賴;

  8,因爲<script>在代碼所有下載好以前,在解析和執行完成之後,才能開始呈現頁面的內容(瀏覽器在遇到<body>標籤纔開始呈現內容);對於不少個JavaScript代碼的頁面來講,會有明顯的延遲,而延遲期的瀏覽器窗口將有一片空白,因此通常都會把<script>放在body底部;

  9,在HTML中嵌入JavaScript代碼雖然沒有問題,但通常認爲最好但作法仍是儘量使用外部文件來包含JavaScript代碼,這不是硬性規定,只是由於它有以下但優勢:

    *可維護性;

    *可緩存;

    *適應將來;

相關文章
相關標籤/搜索