什麼是Ajax?
Ajax的定義
Ajax不是一個技術,它實際上是幾種技術,每種技術都有其獨特這處,合在一起就成了一個功能強大的新技術。Ajax包括:
XHTML和CSS
使用文件物件模型(Document Object Model)作動態顯示和互動
使用XML和XSLT做資料互動和操作
使用XMLHttpRequest進行非同步資料接收
使用JavaScript將它們綁定在一起
傳統的web應用程式模型工作起來就象這樣:大部分介面上的使用者動作觸發一個串連到Web伺服器的HTTP請求。
伺服器完成一些處理---接收資料,處理計算,再訪問其它的資料庫系統,最後返回一個HTML頁面到用戶端。這是一個老套的模式,自採用超文本作為web使用以來,一直都這樣用, 但看過《The Elements of User Experience》的讀者一定知道,是什麼限制了Web介面沒有案頭軟體那麼好用。
圖1: 傳統Web應用程式模型(左)與Ajax模型的比較(右).
這種舊的途徑讓我們認識到了許多技術,但它不會產生很好的使用者體驗。當伺服器正在處理自己的事情的時候,使用者在做什麼?沒錯,等待。每一個動作,使用者都要等待。
很明顯,如果我們按傳統型程式的思維設計Web應用,我們不願意讓使用者總是等待。當介面載入後,為什麼還要讓使用者每次再花一半的時間從服務取資料?實際上,為什麼老是讓使用者看到程式去伺服器取資料呢?
Ajax如何不同凡響
通過在使用者和伺服器之間引入一個Ajax引擎,可以消除Web的開始-停止-開始-停止這樣的互動過程. 它就像增加了一層機制到程式中,使它響應更靈敏,而它的確做到了這一點。
不像載入一個頁面一樣,在會話的開始,瀏覽器載入了一個Ajax引擎---採用JavaScript編寫並且通常在一個隱藏frame中。這個引擎負責繪製使用者介面以及與伺服器端通訊。Ajax引擎允許用非同步方式實現使用者與程式的互動--不用等待伺服器的通訊。所以使用者再不不用開啟一個空白視窗,看到等待游標不斷的轉,等待伺服器完成後再響應。
圖 2: 傳統Web應用的同步互動過程(上)和Ajax應用的非同步互動過程的比較(下).
通常要產生一個HTTP請求的使用者動作現在通過JavaScript調用Ajax引擎來代替. 任何使用者動作的響應不再要求直接傳到伺服器---例如簡單的資料校正,記憶體中的資料編輯,甚至一些頁面導航---引擎自己就可以處理它. 如果引擎需要從伺服器取資料來響應使用者動作---假設它提交需要處理的資料,載入另外的介面代碼,或者接收新的資料---引擎讓這些工作非同步進行,通常使用XML, 不用再擔誤使用者介面的互動。
什麼是XML?
XML是EXtensible Markup Language的縮寫
XML是一種類似於HTML的標記語言
XML是用來描述資料的
XML的標記不是在XML中預定義的,你必須定義自己的標記
XML使用文件類型定義(DTD)或者模式(Schema)來描述資料
XML使用DTD或者Schema後就是自描述的語言
XML和HTML的主要區別是什麼
XML是用來存放資料的
XML不是HTML的替代品,XML和HTML是兩種不同用途的語言。
XML是被設計用來描述資料的,重點是:什麼是資料,如何存放資料。
HTML是被設計用來顯示資料的,重點是:顯示資料以及如何顯示資料更好上面。
HTML是與顯示資訊相關的, XML則是與描述資訊相關的。
“XML”是用於網路上資料交換的語言,具有與描述Web頁面的“HTML”語言相似的格式。該語言有“可以利用Web瀏覽器進行資料確認”以及“易於產生資料”等優點,因此主要用於在企業之間,或者在企業內部更加方便地進行資料交換和利用。首先為了便於理解,下面假設有這麼一種情況:某圖書銷售商要著手建立自己的網站,並發送書店裡的品種目錄和庫存情況等資訊。
管理圖書時,需要使用TABLE標籤等,以一覽表的形式提供 “書名”、“發行日期”、“庫存”、“作者”、“出版社”和“定價”等資料。以這種形式摘要資料後,如果是人,就能夠迅速地瞭解到各自所需的內容。但是,電腦(或系統)即使能夠理解頁面結構或資料布局,也無法理解這裡的資料是什麼意義(屬性)。
然而,“XML”則正是能夠讓電腦也理解這些資料屬性的技術。
如果使用XML,比如“庫存目前有多少?”以及“某個作家寫的書賣了多少冊?”等資料就能夠由電腦“自動地”掌握,並能夠將這些資料與交易對象“共用”。這樣一來,出版社就能夠在制定今後的出版計劃時參考這些資料,而且銷售公司制定有效配送計劃時也將更加容易。這就必定大大有助於削減人事成本,以及提高管理效率。
當然,即便不使用XML,比如,如果能夠建立一個規範的資料庫,並為每個欄位定義一個“書名”和“定價”等名稱,電腦也能夠理解。但是要想在Web上實現這一點,卻要花費相當的人力和成本。在這一點上,如果是XML,由於“能夠利用Web瀏覽器對資料進行確認“,因此只要擁有能夠串連網際網路的電腦和支援XML的瀏覽器,就不需再進行特別的投資。
使用XML,還能夠將在以前的資料庫中難以處理的資料轉化成資料庫。
XML的描述方式與HTML相同,利用被括弧<>括起來的字串進行描述。在HTML中,括弧內所定義的都是版面(Layout)等資訊。而XML則同時定義了資料的屬性,比如剛才提到的圖書,就是以<書名>、<作者>和<出版社>等方式定義。像這樣的定義方式可以自由設定。因此,甚至有不少企業自己定義XML,然後將其用於本公司內部的資料交換。自由度如此之高也是XML受到極大關注的原因之一。
但是,企業之間的資料交換才是XML的著眼點之一。因此,各公司的定義如果不正常化就無法通用。目前,以微軟為主的標準化團體“Biztalk.org”和民間團體“Rosetta Net”等都希望能針對各行業和領域制定“可以廣泛利用的標誌”,以減少定義XML的麻煩。
如果像上述所說的那樣能夠制定XML的標準,並被廣泛應用,那麼不止是企業之間的資料交換將變得更簡單,而且語音資料和生動影像資料等在過去的資料庫中難以進行處理的資料也必將能夠輕鬆轉化成資料庫。這一點在管理方面也可以說是一個巨大的可取之處。
什麼是SNS?
SNS是一個採用分布式技術,通俗地說是採用P2P技術,構建的下一代基於個人的網路基礎軟體。
SNS通過分布式軟體編程,將現在分散在每個人的裝置上的CPU、硬碟、頻寬進行統籌安排,並賦予這些相對伺服器來說很渺小的裝置更強大的能力。這些能力包括:計算速度,通訊速度,儲存空間。
SNS的技術起源:在互連網中,PC機、智能手機都沒有強大的計算及頻寬資源,它們依賴網站伺服器,才能瀏覽發布資訊。如果將每個裝置的計算及頻寬資源進行重新分配與共用,這些裝置就有可能具備比那些伺服器更為強大的能力。這就是分布計算理論誕生的根源,是SNS技術誕生的理論基礎。
SNS的商業空間:當普通人通過安裝SNS軟體都可以擁有媲美網站伺服器的計算及通訊資源時,那些投資了大量伺服器的互連網公司將怎麼辦呢?他們的優勢在什麼地方?會不會有更多的新型的互連網公司出現,而且他們的後台他們的前端有沒有可能完全不是現在的GOOGLE、EBAY、新浪模式呢?甚至包括盛大網路遊戲這樣的電訊廠商,他們引為驕傲的強大的3萬台伺服器叢集,是不是他們的核心競爭力呢?當一個漫畫作者家裡的那台機器,就可以讓他通過SNS視頻器播放他的作品,他還需要去管理一個網站嗎?或許一個家庭主婦不需要懂得HTML編程,不需要懂得網站這個詞彙,只通過SNS菜譜發布程式及一台廚房裡的PC就能讓千百萬人掌握她的手藝,而且她在廚房的灶台上的一招一式都清晰可見。這個時候,您會想到什麼?
現在的互連網中,作為用戶端的我們就像個蠢蛋,只能通過伺服器才能幹些奴隸般的事情,看別人的網站,玩別人的遊戲,發發郵件,除此之外,我們沒有自由。現在是開始革命的時候了!革命中心任務就是:如何讓10多億台電腦發揮他們自己的作用,讓使用者去創造和控制自己的資訊。中間不需要公司的伺服器來擺布我們。
1、什麼是Tag?
Tag(標籤)是一種更為靈活、有趣的分類方式,您可以為每篇日誌、每個文章或者每張圖片等添加一個或多個Tag(標籤),你可以看到網站上所有和您使用了相同Tag的內容,由此和他人產生更多的聯絡。Tag體現了群體的力量,使得內容之間的相關性和使用者之間的互動性大大增強。
比如,你在一篇日誌上添加了“讀書”和“Tag”兩個標籤,就能通過這兩個tag看到和你有相同興趣的其他日誌。同樣,如果你給自己的網路書籤貼上不同標籤,那麼,在下一次去尋找時,會輕易找到自己想要的資訊。
那麼,如果我貼了Tag,能產生什麼效果呢?首先,資訊將會條理化。其次,當你積累了一定數量的Tag之後,你會發現自己最關心的話題。GOOGLE的"我的搜尋曆史"功能就是採用了標籤,你的每次搜尋關鍵詞都可以成為tag,之後,你會瞭解自己這一天在關心什麼。
當然,你也可以看到有哪些人和自己使用了一樣的Tag(標籤),進而找到和您志趣相投的人。
2、Tag究竟有哪些不同?
Tag不是關鍵詞,因為,一個機器就沒有辦法提取一張照片的關鍵字,但人可以給它設定一個或多個Tag。而Tag真正不同的地方在於,你可以隨意用任何詞來標記一件事物,只要方便你找到它。因此,這一標誌是活躍的、無序的、個人化、相當自我的一種標記方式。
當我可以為我自己的言論作出自己想要的標誌,而不是別人給予我的分類,那麼,我將說些什麼呢?我又會通過這種標誌找到什麼樣的人什麼樣的文章、圖片呢?Tag創造了一個新的無序但充滿生機的網路聯合體,通過這個聯合,人們找到和自己最接近的內容。
3、如何使用Tag?
現在很多網站都使用了Tag模式,只要使用者自身開啟了界限,隨心所欲地給自己注釋標籤,不被舊有思維局限住,就對了。簡單地說,Tag是一種隨心所欲的標籤,當我讀一篇文章或者看一張圖片的時候想什麼就寫什麼,不受原有分類的束縛,怎麼想就怎麼使用。