js,全稱javascript,不過雖然是以java開頭,不過與java一點關系都沒有。
js和java有如下區別:
(1)js是瀏覽器端的語言,而java是服務器端的語言。
(2)js是動態語言,java是靜態語言。
(3)java是基於面向對象的編程語言,而js雖有對象這個概念,但是只是基於對象而不能直接繼承;
這里要提一點動態和靜態是什么意思?
簡單的說,動態就是不需要編譯就能執行,而靜態需要編譯執行。
現在比較流行的就是前后端分離,如果用純html開發+js獲取后台數據,那么路徑又怎么獲得的呢?
既然是瀏覽器,那不得不提一個web開發最基礎也最重要的東西,HTTP協議。
這里我要引用一位朋友的話:
HTTP請求具有如下特點:
(1)簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由於HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
(2)靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
(3)無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。
(4)無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味着如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。
(5)支持B/S及C/S模式。
這里還不得不提一個概念:
HTTP請求中的URL
HTTP使用統一資源標識符(Uniform Resource Identifiers, URI)來傳輸數據和建立連接。URL是一種特殊類型的URI,包含了用於查找某個資源的足夠的信息
URL,全稱是UniformResourceLocator, 中文叫統一資源定位符,是互聯網上用來標識某一處資源的地址。以下面這個URL為例,介紹下普通URL的各部分組成:
http://www.yc520.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
從上面的URL可以看出,一個完整的URL包括以下幾部分:
(1)協議部分:該URL的協議部分為“http:”,這代表網頁使用的是HTTP協議。在Internet中可以使用多種協議,如HTTP,FTP等等本例中使用的是HTTP協議。在"HTTP"后面的“//”為分隔符
(2)域名部分:該URL的域名部分為“www.yc520.com”。一個URL中,也可以使用IP地址作為域名使用
(3)端口部分:跟在域名后面的是端口,域名和端口之間使用“:”作為分隔符。端口不是一個URL必須的部分,如果省略端口部分,將采用默認端口
(4)虛擬目錄部分:從域名后的第一個“/”開始到最后一個“/”為止,是虛擬目錄部分。虛擬目錄也不是一個URL必須的部分。本例中的虛擬目錄是“/news/”
(5)文件名部分:從域名后的最后一個“/”開始到“?”為止,是文件名部分,如果沒有“?”,則是從域名后的最后一個“/”開始到“#”為止,是文件部分,如果沒有“?”和“#”,那么從域名后的最后一個“/”開始到結束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一個URL必須的部分,如果省略該部分,則使用默認的文件名
(6)錨部分:從“#”開始到最后,都是錨部分。本例中的錨部分是“name”。錨部分也不是一個URL必須的部分
(7)參數部分:從“?”開始到“#”為止之間的部分為參數部分,又稱搜索部分、查詢部分。本例中的參數部分為“boardID=5&ID=24618&page=1”。參數可以允許有多個參數,參數與參數之間用“&”作為分隔符。
下面我們進入正題,如何通過js獲取項目路徑?
如下js代碼即可獲取:
/**
* 項目路徑
*/
window.onload=function(){
getPath();
}
function getPath(){
var pathName = document.location.pathname;
var index = pathName.substr(1).indexOf("/");
var result = pathName.substr(0,index+1);
$("#path").val(result);
}
關於js這部分,我將在后續寫一個連載系統篇為大家詳細介紹和講解js。一來分享心得,二來總結。