摘要:相關(guān)最大的特性就在于直接操縱網(wǎng)頁上的節(jié)點,從而實現(xiàn)網(wǎng)頁的局部刷新而非全局刷新。該回調(diào)函數(shù)會在送回響應的時候被調(diào)用。當然了,如果瀏覽器不支持對象,會返回,在這時需要進行額外的處理。
前言
馬上就要參加一個團隊項目進行React的前端開發(fā)了。最近正在著手熟練React語法,然后發(fā)現(xiàn)本質(zhì)上還是建立在對javascript的深刻理解上。市面上在js基礎(chǔ)上封裝出了非常多優(yōu)秀的車輪,其中最被新手廣泛使用的當屬jquery。熟悉jquery語法的童鞋可能會覺得js的語法非常的啰嗦,但是在ES6的最新標準出現(xiàn)以后,js重獲新生,可以造出更優(yōu)秀的輪子了(笑)。所以在這里我重新整理一下js的基本知識點。
DOM相關(guān)JS最大的特性就在于直接操縱網(wǎng)頁上的DOM節(jié)點,從而實現(xiàn)網(wǎng)頁的局部刷新而非全局刷新。這個特性決定了只要瀏覽器不死,js就還是會活躍在一線作為底層的實現(xiàn)優(yōu)化瀏覽器的加載。當然曾經(jīng)對JS的濫用也導致在一段時間內(nèi),人們對彈窗廣告嗤之以鼻,這一段時期是JS的用戶體驗的低谷期。然而在爆炸互聯(lián)網(wǎng)時期,隨著瀏覽器承擔了更多本來桌面應用承擔的功能,JS的深度運用也逐漸被開發(fā)出來。下面是一些我整理的API關(guān)于直接操縱DOM節(jié)點的。
獲得節(jié)點節(jié)點屬性getElementById(idname): 返回id值為idname的節(jié)點
getElementsByTagName(tagname) : 返回array對象,array中的元素為標簽名是tagname的節(jié)點
getElementsByClassName(className) : 返回array對象,array中為class中包含className的節(jié)點
增刪節(jié)點getAttribute(attributeName) : 該方法作用于節(jié)點上,獲得節(jié)點attributeName屬性的內(nèi)容
setAttribute(attributeName, value) : 該方法作用域節(jié)點上,修改節(jié)點attributeName屬性的值
childNodes : 該屬性可以用來獲得任何一個元素的所有子元素,這個子元素包含元素節(jié)點,文本節(jié)點,屬性節(jié)點
nodeType : 獲得元素節(jié)點的屬性值,元素節(jié)點屬性值為1,屬性節(jié)點的屬性值為2,文本節(jié)點的屬性值為3
nodeValue : 獲得節(jié)點的屬性值,注意一定要作用在文本節(jié)點上,否則得到的值是null,也可以用于賦值
firstChild : 獲得第一個子節(jié)點,等價于node.childNodes[0]
lastChild : 獲得最后子節(jié)點,等價于node.childNodes[childNodes.length-1]
nextSibling : 獲得相鄰的節(jié)點
parentNode : 父節(jié)點
WindowinnerHTML : 獲得或更改當前節(jié)點下的所有html代碼
createElement(element) : 創(chuàng)建一個元素節(jié)點
createTextNode(text) : 創(chuàng)建一個文本節(jié)點
appendChild(child) : 將child節(jié)點插入當前節(jié)點的子節(jié)點
parentElement.insertBefore(newElement, targetElement) : 在已有元素前插入一個新元素。這個方法的設(shè)計有點累贅,可見js當初給自己的定位就是單純的腳本語言啊。
JS最頂層的全局屬性就是Window,通過全局的window我們可以定義很多瀏覽器行為比如彈出窗口,彈出警告,跳轉(zhuǎn)至新的窗口等。
AJAXwindow.open(url, name, features) : 創(chuàng)建新的瀏覽器窗口,這個方法的三個參數(shù)都是可選的。第一個參數(shù)是指新窗口的URL地址,如果忽略這個參數(shù)會彈出一個新的空白瀏覽窗。第二個參數(shù)是新窗口的名字,可以在代碼里通過新窗口的名字和這個窗口通信。最后一個參數(shù)是以逗號分隔的字符串,其內(nèi)容是新窗口的各種屬性,比如尺寸,工具欄。
window.onload : 頁面被加載時進行的工作,可以賦值給它一個方法,如果想要執(zhí)行多個方法,也可以將其封裝進一個方法。或者手動創(chuàng)建一個addEvent的方法來給其動態(tài)賦值
以前和瀏覽器交互意味著發(fā)送請求然后瀏覽器重新返回一個新的頁面,然而跟原來頁面相比,可能只需要頁面上極少的一部分發(fā)生改變。AJAX可以做到異步向服務器發(fā)送請求并根據(jù)數(shù)據(jù)只更新一小部分界面。很多框架都對JS的AJAX進行了封裝,從而讓代碼更加簡潔高效,而且可以在不同的瀏覽器上實現(xiàn)兼容(IE笑了)。
XMLHttpRequest范例:
function getNewContent(){ //在這里不考慮兼容性,直接返回XMLHttpRequest對象 var request = new XMLHttpRequest(); if(request){ request.open("GET", "example.txt", true); request.onreadystatechange = function(){ if(request.readyState == 4){ .... } }; request.send(null); }else{ alert("瀏覽器不支持XMLHttpRequest"); } }
在這里先使用open方法打開一個ajax請求,然后傳入回調(diào)函數(shù)。該回調(diào)函數(shù)會在XMLHttpRequest送回響應的時候被調(diào)用。當然了,如果瀏覽器不支持XMLHttpRequest對象,會返回false,在這時需要進行額外的處理。
readystate有五個可能的屬性值:
0 : 未初始化
1 : 正在加載
2 : 加載完畢
3 : 正在交互
4 : 完成
返回的響應內(nèi)容可以在request.responseText中查看
快捷鍵之a(chǎn)ccess key時鐘accesskey="1" : 返回到本網(wǎng)站主頁
accesskey="2" : 后退到前一頁面
accesskey="4" : 打開本網(wǎng)站的搜索表單/頁面
accesskey="9" : 本網(wǎng)站聯(lián)系方法
accesskey="0" : 查看本網(wǎng)站的快捷鍵清單
數(shù)值處理variable = setTimeOut("function", interval) : 將function在一段interval之后開始執(zhí)行
clearTimeOut(variable) : 取消等待執(zhí)行隊列里的某個函數(shù)
parseInt("") : 返回輸入值中的整數(shù)
parseFloat("") : 返回輸入值中的小數(shù)
這些都是我在閱讀了《Script DOM編程藝術(shù)》之后的一些隨手筆記。其實這本書非常適合入門,因為它給了一些簡單的示例讓我們在對JS了解甚少的情況下清楚HTML+CSS+JS是怎樣的工作模式。不過對于真正的語法講解甚少,所以可謂是基礎(chǔ)之基礎(chǔ)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/88836.html
摘要:如果支持,直接從獲取當前腳本運行的地址如果不支持則遍歷文檔所有的標簽,判斷哪個標簽的為,則說明此標簽的屬性為當前腳本運行的地址。需要的注意的是只有支持,和均不支持。 起因 在閱讀layUI的源代碼關(guān)于加載遠程腳本的代碼中出現(xiàn)了判斷當前js腳本地址的代碼,其中出現(xiàn)了對于document.currentScript支持與不支持時,會走不同的邏輯。如果支持document.currentSc...
摘要:如果支持,直接從獲取當前腳本運行的地址如果不支持則遍歷文檔所有的標簽,判斷哪個標簽的為,則說明此標簽的屬性為當前腳本運行的地址。需要的注意的是只有支持,和均不支持。 起因 在閱讀layUI的源代碼關(guān)于加載遠程腳本的代碼中出現(xiàn)了判斷當前js腳本地址的代碼,其中出現(xiàn)了對于document.currentScript支持與不支持時,會走不同的邏輯。如果支持document.currentSc...
摘要:代碼資料文件文件文件關(guān)于系列的的網(wǎng)頁的操作需要權(quán)限的相關(guān)文檔關(guān)于瀏覽器無法一些元素無法設(shè)置屬性的解決方案和原因 react代碼資料: 文件:packages/react-dom/src/client/setInnerHTML.js /** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code...
摘要:常規(guī)寫法速記法判斷變量是否存在速記法這可能會有些瑣碎,但是值得一提。常規(guī)寫法速記法注意這兩個例子并不是完全相等,只要變量是一個真值,該表達式就是成立的。 19+ 個 JavaScript 快速編程技巧 — SitePoint 這確實是一篇針對于基于 JavaScript 語言編程的開發(fā)者必讀的文章。在過去幾年我學習 JavaScript 的時候,我寫下了這篇文章,并將其作為 JavaS...
閱讀 2007·2023-04-25 16:53
閱讀 1448·2021-10-13 09:39
閱讀 615·2021-09-08 09:35
閱讀 1650·2019-08-30 13:03
閱讀 2129·2019-08-30 11:06
閱讀 1839·2019-08-30 10:59
閱讀 3197·2019-08-29 17:00
閱讀 2296·2019-08-23 17:55