<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>網絡暴民 Jacky&#039;s Blog &#187; ajax</title>
	<atom:link href="http://jacky.seezone.net/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://jacky.seezone.net</link>
	<description></description>
	<lastBuildDate>Mon, 30 Jan 2012 17:45:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Javascript Library 雜談</title>
		<link>http://jacky.seezone.net/2006/06/03/1652/</link>
		<comments>http://jacky.seezone.net/2006/06/03/1652/#comments</comments>
		<pubDate>Fri, 02 Jun 2006 17:11:35 +0000</pubDate>
		<dc:creator>Jacky</dc:creator>
				<category><![CDATA[網絡]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://jacky.seezone.net/2006/06/03/1652/</guid>
		<description><![CDATA[(因為沒有什麼要點，所以又是雜談) 近年來 Javascript 因為 Ajax 而又再次備受注目，有人開發出不同形式的 Javascript library/framework 來加快開發的速度，用簡單的碼寫出複雜的 UI。對我來說，一個 framework/library 最好可以： 調解不同瀏覽器之間的差別，使開發者可以使用統一的 API 來寫程式，如 event listener 用不同的 helper utilities 來補足 Javascript 的不足，如 collections, validation 簡化過去的複雜 UI 寫法，如 fade in/out, drag and drop 等等 提供一些常用的 widget，如 date selector, datagrid 各個不同的模組可以分開來使用，不用一次過載入大體積的檔案 而在網上，幾個令我注目的 Javascript library/framework： (一) 基本型 Prototype &#8211; 提供很多在寫程式上很便利的功能，得到不少開發者支持，也有不少教學文章，他衍生出其他 的 library 如 script.aculo.us、Rico 等等。 jQuery &#8211; [...]]]></description>
			<content:encoded><![CDATA[	<p>(因為沒有什麼要點，所以又是雜談)</p>

	<p>近年來 Javascript 因為 Ajax 而又再次備受注目，有人開發出不同形式的 Javascript library/framework 來加快開發的速度，用簡單的碼寫出複雜的 UI。對我來說，一個 framework/library 最好可以：</p>

	<ul>
		<li>調解不同瀏覽器之間的差別，使開發者可以使用統一的 <span class="caps">API</span> 來寫程式，如 event listener</li>
		<li>用不同的 helper utilities 來補足 Javascript 的不足，如 collections, validation</li>
		<li>簡化過去的複雜 UI 寫法，如 fade in/out, drag and drop 等等</li>
		<li>提供一些常用的 widget，如 date selector, datagrid</li>
		<li>各個不同的模組可以分開來使用，不用一次過載入大體積的檔案</li>
	</ul>

	<p>而在網上，幾個令我注目的 Javascript library/framework：</p>

	<p>(一) 基本型</p>

	<ul>
		<li><a href="http://prototype.conio.net/">Prototype</a> &#8211; 提供很多在寫程式上很便利的功能，得到不少開發者支持，也有不少教學文章，他衍生出其他 的 library 如 script.aculo.us、Rico 等等。</li>
		<li><a href="http://jquery.com/">jQuery</a> &#8211; 像 Prototype 般提供 dom, event, animation 等等。其最強的是可配用 css selector/xpath 來選取 dom 物件，而且方法間還是 chainable (所以是 Query) ，可用簡單一句做出本來幾十行才做到的複雜事。還有是它只有十多 KB 的大小，實在是小巧實用。雖然還是蠻年幼的 library，但期待日後會更有發展。</li>
	</ul>

	<p>(二) 豐富型</p>

	<ul>
		<li><a href="http://dojotoolkit.org/">Dojo toolkit</a> &#8211; 內容最豐富的 library，除了一些 basic ajax 外，還有不同的 data structures, widgets, math, crypto 等等。其中最注目的當然是 dojo.storage，可以在 client side 存放比較大量的資料了。其 packaging 方法讓你可以做到一般程式的 import 效果，可以用到先加入。可是到現時為止，教學文件還是缺缺的，有瞎子摸象的感覺。</li>
		<li><a href="http://developer.yahoo.com/yui/">Yahoo! UI</a> &#8211; 一套很不錯而且完善的 library set，其 Event library 有很好的 wrapping，如 automatic scope correction, event object browser abstraction 等等，解決了令開發者很煩惱的問題。當然還包括了 dom, animation, connection manager 等等。最驚喜的 (但也不關 javascript 事) 是它還包括了 <span class="caps">CSS</span> library，用一個蠻有系統的方法，去做 <span class="caps">CSS</span> Layout。有詳細的說明文件和例子，很易上手。</li>
	</ul>

	<p>有那麼多的 framework/library ，各自有不同的用戶群，實在令人眼花撩亂，很難取捨。而這些 framework/library 都是 client side 的，他們會如何與 server side 的技術結合也將是關鍵。</p>


	Tags:  <a href="http://jacky.seezone.net/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://jacky.seezone.net/tag/javascript/" title="javascript" rel="tag">javascript</a><br />
]]></content:encoded>
			<wfw:commentRss>http://jacky.seezone.net/2006/06/03/1652/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2005 網絡技術回顧</title>
		<link>http://jacky.seezone.net/2005/12/30/1490/</link>
		<comments>http://jacky.seezone.net/2005/12/30/1490/#comments</comments>
		<pubDate>Fri, 30 Dec 2005 09:26:00 +0000</pubDate>
		<dc:creator>Jacky</dc:creator>
				<category><![CDATA[網絡]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[ruby-on-rails]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://jacky.seezone.net/?p=1490</guid>
		<description><![CDATA[又再來一個回顧了。在這一年，有三項令我比較注目的技術名詞 ：Ajax, Ruby on Rails, Web 2.0，三者又互有關係。 自 GMail 和 Google Maps 面世，大家都對 Ajax 有了很大興趣，結果在今年有很多不同的 Ajax library 出世，如 Prototype , Dojo 等等，也研究出很多做 Ajax 的方法，好處壞處等等。人們也開始希望使用 Ajax 創造出更加 Desktop-like 的 Web Application，所以連帶一些特效 library 如 script.aculo.us 也紅起來了。在 Server-side， MS 有 ASP.NET 的支持，Java 有很多library 如 DWR ，而新的 Ruby on Rails 本身已有 Native 的 Ajax Support 了。下一年的 Ajax 技術將會更加成熟。 Ruby [...]]]></description>
			<content:encoded><![CDATA[<p>又再來一個回顧了。在這一年，有三項令我比較注目的技術名詞 ：Ajax, Ruby on Rails, Web 2.0，三者又互有關係。</p>

<p>自 <a href="http://www.gmail.com">GMail</a> 和 <a href="http://maps.google.com">Google Maps</a> 面世，大家都對 Ajax 有了很大興趣，結果在今年有很多不同的 Ajax library 出世，如 <a href="http://prototype.conio.net/">Prototype</a> , <a href="http://dojotoolkit.org/">Dojo</a> 等等，也研究出很多做 Ajax 的方法，好處壞處等等。人們也開始希望使用 Ajax 創造出更加 Desktop-like 的 Web Application，所以連帶一些特效 library 如 <a href="http://script.aculo.us/">script.aculo.us</a> 也紅起來了。在 Server-side， MS 有 <span class="caps">ASP</span>.NET 的支持，Java 有很多library 如 <a href="http://www.getahead.ltd.uk/dwr/"><span class="caps">DWR</span></a> ，而新的 <a href="http://www.rubyonrails.org/">Ruby on Rails</a> 本身已有 Native 的 Ajax Support 了。下一年的 Ajax 技術將會更加成熟。</p>

<p><a href="http://www.rubyonrails.org/">Ruby on Rails</a> 是一個 Fast Development 的 Web Framework，幫你做了很多東西，讓開發者可以專注於 Business Layer。 Convention over Configuration 、Code generation 工具等等使開發速度加快了很多。而使用的語言 Ruby 也是非常簡潔有力，受到開發者的歡迎。配合 Active Records 使存取 Database record 更 OO 更方便。有很多 Web 2.0 的服務，也使用了 Ruby on Rails 作為開發的 Framework。不過，始終 Ruby on Rails 還是相當新的玩意兒，到廣範應用還是有很遠的路要走。首先要解決的，還是 i18N 的問題。</p>

<p><a href="http://en.wikipedia.org/wiki/Web2.0">Web 2.0</a> 本來只是一個頗為技術性的名詞，但在這一年越來越得到廣泛談論。隨著 Wiki, Blog, <span class="caps">RSS</span>, Tagging, Social Network 等東西的興起，我們已走入 Web 2.0 的時候，甚至連消費性質的電腦雜誌也大字標題地介紹了。其實對於用戶來說， Web 是什麼版本並不重要，也無關係。用戶只管使用這些網絡服務就好了，而且會網絡越來越方便，越來越好用，越來越與生活連上關係。現在的互聯網，在泡沫過後，才是真正的黃金時期。而對於互聯網公司和開發者來說，了解並掌握 Web 2.0 的特質，是最重要的事情。</p>

<p>下一年，網絡將必更加精彩~</p>
	Tags:  <a href="http://jacky.seezone.net/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://jacky.seezone.net/tag/ruby-on-rails/" title="ruby-on-rails" rel="tag">ruby-on-rails</a>, <a href="http://jacky.seezone.net/tag/technology/" title="technology" rel="tag">technology</a>, <a href="http://jacky.seezone.net/tag/web/" title="web" rel="tag">web</a>, <a href="http://jacky.seezone.net/tag/web20/" title="web2.0" rel="tag">web2.0</a><br />
]]></content:encoded>
			<wfw:commentRss>http://jacky.seezone.net/2005/12/30/1490/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>化身萬千的瀏覽器</title>
		<link>http://jacky.seezone.net/2005/09/02/1358/</link>
		<comments>http://jacky.seezone.net/2005/09/02/1358/#comments</comments>
		<pubDate>Thu, 01 Sep 2005 18:31:34 +0000</pubDate>
		<dc:creator>Jacky</dc:creator>
				<category><![CDATA[網絡]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://jacky.seezone.net/?p=1358</guid>
		<description><![CDATA[早前看過一個叫 Ajax Office 的東西，光看名字就有意思了： Ajax 是這年內最響噹噹的一個字，講的是用 Remote Scripting 去做網絡程式， Gmail 、 Google Map 就是其表表者； Office 當然就是指我們常用的文書處理工具。去到 Ajax Office 的頁面並沒有什麼特別的東西，只有一些字和一些連結，最搶眼的一句是：AJAX OFFICE is to Microsoft Office what GMail (Google Mail) is to Microsoft OutLook。 Ajax Office 雖然是一個 SourceForge 的 Project ，但其實只是提出了一個理念，沒有什麼實際的東西正真可用。然而，在 GMail 推出之後，已有很多蠢蠢欲動的計劃，要為大家去做 To-Do List , Calendar, Contact, Word Processing, SpreadSheet, Presentation 等等。如 Ajax Office 的概念，就有 GOffice [...]]]></description>
			<content:encoded><![CDATA[	<p style="text-align:center;"><a href="http://www.flickr.com/photos/jackysee/39286580/" title="Photo Sharing"><img src="http://static.flickr.com/23/39286580_f5fb85778f_o.jpg" width="345" height="258" alt="www" /></a></p>

	<p>早前看過一個叫 <a href="http://ajaxoffice.sourceforge.net/">Ajax Office</a> 的東西，光看名字就有意思了： Ajax 是這年內最響噹噹的一個字，講的是用 Remote Scripting 去做網絡程式， <a href="http://gmail.google.com">Gmail</a> 、 <a href="http://maps.google.com">Google Map</a> 就是其表表者； Office 當然就是指我們常用的文書處理工具。去到 <a href="http://ajaxoffice.sourceforge.net/">Ajax Office</a> 的頁面並沒有什麼特別的東西，只有一些字和一些連結，最搶眼的一句是：AJAX <span class="caps">OFFICE</span> is to Microsoft Office what GMail (Google Mail) is to Microsoft OutLook。</p>

	<p><a href="http://ajaxoffice.sourceforge.net/">Ajax Office</a> 雖然是一個 <a href="http://www.sourceforge.net">SourceForge</a> 的 Project ，但其實只是提出了一個理念，沒有什麼實際的東西正真可用。然而，在 <a href="http://gmail.google.com">GMail</a> 推出之後，已有很多蠢蠢欲動的計劃，要為大家去做 To-Do List , Calendar, Contact, Word Processing, SpreadSheet, Presentation 等等。如 <a href="http://ajaxoffice.sourceforge.net/">Ajax Office</a> 的概念，就有 <a href="http://www.goffice.com">GOffice</a> 、 <a href="http://www.writely.com">Writely</a> 這些服務了。</p>

	<p>由 Web 1.0 的「讀」年代，我們現在變成 Web 2.0 的「讀寫」模式。我們的瀏覽器，再也不只是用來瀏覽，一時變身電郵客戶，一時變工作計劃軟件，一時變作寫記本，身份百變。</p>

	<p>不過，當初設計的 <span class="caps">HTML</span> 在功能上並沒有考慮「寫」這一方面，所以在一些表單的功能都是很簡單的，這也是考慮到 Request-Response 模式上並不會做到很複雜，所以也沒有將桌面軟件的豐富元件帶到 <span class="caps">HTML</span> 了。現在我們看到的網絡上的各種多元化的豐富控制，都是靠大量的 <span class="caps">DOM</span> Scripting 和 Ajax 去創造，例如一些已可用的 Calendar 元件、 Rich Text Editor 等等。</p>

	<p>Web 進入 2.0 時代，但並沒有靠/等下一代的 <span class="caps">HTML</span> 來到，反而是 Ajax 成了突破的重點，靠 Javascript 此一技術突破，並不受到瀏覽器的支援度所限，發展得如日中天。</p>

	<p>盡力模仿桌面軟件，故之然能讓用戶在熟悉的環境之下工作，但網絡軟件也更應該抓實 Web 2.0 的特點。因為軟件在網上運作，自然可以延伸到用戶和社群的方面，可加入不少社會性的特點，讓用戶之間交流。</p>

	<p>雖然由 Ajax 技術所衍生出來的網絡服務如雨後春荀，但是沒有一個真正說得上如 Gmail 般是 Killer App。對我來說，這些服務雖然都很好，但分得實在太散，登記多一個服務，等於要記多一個網址和 Login。而且，服務之間沒有互通性，這邊做了一個 to-do list，並不能在另一邊的 Calendar 看到。因此，這些網絡軟件之間如果也有協作性就很不錯了。想想一套 Office 是一套整體的，當中各個不同的軟件互相可通格式，互相協作才可以更有利於用戶有效地使用。要各個網絡軟件可以互相溝通，當然就是依靠標準的訂立了，否則只會各自為政，苦了用戶。</p>


	Tags:  <a href="http://jacky.seezone.net/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://jacky.seezone.net/tag/office/" title="office" rel="tag">office</a>, <a href="http://jacky.seezone.net/tag/os/" title="os" rel="tag">os</a>, <a href="http://jacky.seezone.net/tag/web/" title="web" rel="tag">web</a><br />
]]></content:encoded>
			<wfw:commentRss>http://jacky.seezone.net/2005/09/02/1358/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AJAX 豐富用戶端</title>
		<link>http://jacky.seezone.net/2005/04/26/1214/</link>
		<comments>http://jacky.seezone.net/2005/04/26/1214/#comments</comments>
		<pubDate>Tue, 26 Apr 2005 13:11:13 +0000</pubDate>
		<dc:creator>Jacky</dc:creator>
				<category><![CDATA[網絡]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://jacky.seezone.net/?p=1214</guid>
		<description><![CDATA[Isomorphic Software 的 Smart Client 運用了 AJAX 的技術，實現了一些類似於 Laszlo 的網絡應用程式。兩者共通之處，都是用 XML 檔來建做一個 Rich Client 的環境，一個用 Flash 一個用 Javascript。 Laszlo 的環境因為是 Flash 的關係，所以比較美觀。不過在實用性上，兩者其實差不多，開發上也是很簡單。 可惜的是，兩者在速度方面實在不太好，主要的負載在 Client Side 必須有足夠快的電腦，才可以載起這些 Rich Client 的 Core Engine。 而另一方面，因為與 Server 互動地方有很多，有很多的 Mini-request 發出去了，如果 Server 不夠快就會有遲緩感。這種遲緩感，換了平常的網絡程式，反而沒有問題，但因為這些 Rich Client 的用戶介面， 與我們平時常用的桌面程式太相似，在使用印象上重疊，因而會有與桌面程式一樣般快和有反應的期望 ，所以速度不達便感到累贅。 雖然如此，但大家對於這些功能上比較豐富的用戶端還是充滿興趣，至少發開者是如此。自從 Google 將 AJAX 應用在其不同的服務上，帶來了新鮮的用戶體驗，就更引起大家的興趣。比起 Flash ， AJAX 的優勢在於可以與舊有的技術互相融合，我可以為程式逐點加上 AJAX 的改進用戶體驗，而不用將整個程式重寫成 Flash [...]]]></description>
			<content:encoded><![CDATA[	<p><a href="http://www.smartclient.com/">Isomorphic Software</a> 的 <a href="http://www.smartclient.com/technology/testdrive.jsp">Smart Client</a> 運用了 <a href="http://en.wikipedia.org/wiki/AJAX"><span class="caps">AJAX</span></a> 的技術，實現了一些類似於 <a href="http://www.laszlosystems.com/">Laszlo</a> 的網絡應用程式。兩者共通之處，都是用 <span class="caps">XML</span> 檔來建做一個 Rich Client 的環境，一個用 Flash 一個用 Javascript。 <a href="http://www.laszlosystems.com/">Laszlo</a> 的環境因為是 Flash 的關係，所以比較美觀。<strong>不過在實用性上，兩者其實差不多，開發上也是很簡單。</strong></p>

	<p>可惜的是，兩者在速度方面實在不太好，主要的負載在 <strong>Client Side 必須有足夠快的電腦，才可以載起這些 Rich Client 的 Core Engine。</strong> 而另一方面，因為與 Server 互動地方有很多，有很多的 Mini-request 發出去了，如果 Server 不夠快就會有遲緩感。這種遲緩感，換了平常的網絡程式，反而沒有問題，但因為這些 Rich Client 的用戶介面， <strong>與我們平時常用的桌面程式太相似，在使用印象上重疊，因而會有與桌面程式一樣般快和有反應的期望</strong> ，所以速度不達便感到累贅。</p>

	<p>雖然如此，但大家對於這些功能上比較豐富的用戶端還是充滿興趣，至少發開者是如此。自從 <a href="http://www.google.com">Google</a> 將 <a href="http://en.wikipedia.org/wiki/AJAX"><span class="caps">AJAX</span></a> 應用在其不同的服務上，帶來了新鮮的用戶體驗，就更引起大家的興趣。比起 Flash ， <a href="http://en.wikipedia.org/wiki/AJAX"><span class="caps">AJAX</span></a> 的優勢在於可以與舊有的技術互相融合，我可以為程式逐點加上 <a href="http://en.wikipedia.org/wiki/AJAX"><span class="caps">AJAX</span></a> 的改進用戶體驗，而不用將整個程式重寫成 Flash 版本。今年， <a href="http://en.wikipedia.org/wiki/AJAX"><span class="caps">AJAX</span></a> 的應用如雨後春筍，我相信還陸續有來！</p>


	Tags:  <a href="http://jacky.seezone.net/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://jacky.seezone.net/tag/development/" title="development" rel="tag">development</a>, <a href="http://jacky.seezone.net/tag/javascript/" title="javascript" rel="tag">javascript</a>, <a href="http://jacky.seezone.net/tag/web/" title="web" rel="tag">web</a><br />
]]></content:encoded>
			<wfw:commentRss>http://jacky.seezone.net/2005/04/26/1214/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax 工具 (PHP版本)</title>
		<link>http://jacky.seezone.net/2005/03/07/1139/</link>
		<comments>http://jacky.seezone.net/2005/03/07/1139/#comments</comments>
		<pubDate>Mon, 07 Mar 2005 13:44:04 +0000</pubDate>
		<dc:creator>Jacky</dc:creator>
				<category><![CDATA[網絡]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://jacky.seezone.net/?p=1139</guid>
		<description><![CDATA[SAJAX &#8211; Simple Ajax Toolkit 是一個簡單的 PHP 用的 Ajax 工具，只要寫好要用的 function，就可以直接在 Javascript 中用 x_function 用 XMLHttpRequest 來叫喚 PHP 的程式，因為本身已經產生了XMLHttpRequest 的物件，所以在使用上跟使用普通的 Javascript function 一樣，簡單易用。計劃會有 ASP, Perl, Python, Ruby, Io 的版本&#8230;. 沒有 Java 呢&#8230;. 相關連結： Sajax &#8211; Simple Ajax Toolkit Tags: ajax, javascript, php]]></description>
			<content:encoded><![CDATA[	<p><a href="http://www.modernmethod.com/sajax/"><span class="caps">SAJAX</span> &#8211; Simple Ajax Toolkit</a> 是一個簡單的 <span class="caps">PHP</span> 用的 Ajax 工具，只要寫好要用的 function，就可以直接在 Javascript 中用 x_function 用 XMLHttpRequest 來叫喚 <span class="caps">PHP</span> 的程式，因為本身已經產生了XMLHttpRequest 的物件，所以在使用上跟使用普通的 Javascript function 一樣，簡單易用。計劃會有 <span class="caps">ASP</span>, Perl, Python, Ruby, Io 的版本&#8230;. 沒有 Java 呢&#8230;. </p>

	<p>相關連結： <a href="http://www.modernmethod.com/sajax/">Sajax &#8211; Simple Ajax Toolkit</a></p>


	Tags:  <a href="http://jacky.seezone.net/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://jacky.seezone.net/tag/javascript/" title="javascript" rel="tag">javascript</a>, <a href="http://jacky.seezone.net/tag/php/" title="php" rel="tag">php</a><br />
]]></content:encoded>
			<wfw:commentRss>http://jacky.seezone.net/2005/03/07/1139/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ajax 新浪潮</title>
		<link>http://jacky.seezone.net/2005/02/25/1127/</link>
		<comments>http://jacky.seezone.net/2005/02/25/1127/#comments</comments>
		<pubDate>Fri, 25 Feb 2005 13:50:10 +0000</pubDate>
		<dc:creator>Jacky</dc:creator>
				<category><![CDATA[網絡]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://jacky.seezone.net/?p=1127</guid>
		<description><![CDATA[最近在 Adaptive Path 看到一個新的名詞：Ajax，究竟是什麼來的呢？原來在上一年漸露鋒芒的 XMLHttpRequest，也就是這一年來 Google 不停在玩的技術，用在 GMail , Google Suggests , Google Map 上。Ajax 的全寫是 Asynchronous JavaScript + XML，這個寫法是 Adaptive Path 所自創的縮寫，他們形容一個 Ajax 的網絡應用程式，有以下的特質： 用 XHTML + CSS 作合符標準的表達 用 Document Object Model (DOM) 作動態顯示和互動 用 XML and XSLT 作為資料交換和操作 用 XMLHttpRequest 取得非同步資料 用 Javascript 將以上種種結合在一起 這個技術的主角 XMLHttpRequest 的最主要特點，在於能夠不用重新載入整個版面來更新資料，也就是所謂的 Refresh without Reload。因為與伺服器之間的溝通，完全是透過 Javascript 來實行，也就沒有傳統網頁的表單發送而引至的整版重載的 [...]]]></description>
			<content:encoded><![CDATA[	<p>最近在 <a href="http://www.adaptivepath.com/publications/essays/archives/000385.php">Adaptive Path</a> 看到一個新的名詞：Ajax，究竟是什麼來的呢？原來在上一年漸露鋒芒的 XMLHttpRequest，也就是這一年來 <a href="http://www.google.com">Google</a> 不停在玩的技術，用在 <a href="http://gmail.google.com">GMail</a> , <a href="http://www.google.com/webhp?complete=1&#38;amp;hl=en">Google Suggests</a> , <a href="http://maps.google.com">Google Map</a> 上。Ajax 的全寫是 Asynchronous JavaScript + XML，這個寫法是 <a href="http://www.adaptivepath.com/publications/essays/archives/000385.php">Adaptive Path</a> 所自創的縮寫，他們形容一個 Ajax 的網絡應用程式，有以下的特質：</p>

	<ul>
		<li>用 <span class="caps">XHTML</span> + <span class="caps">CSS</span> 作合符標準的表達</li>
		<li>用 Document Object Model (<span class="caps">DOM</span>) 作動態顯示和互動</li>
		<li>用 <span class="caps">XML</span> and <span class="caps">XSLT</span> 作為資料交換和操作</li>
		<li>用 XMLHttpRequest 取得非同步資料</li>
		<li>用 Javascript 將以上種種結合在一起</li>
	</ul>

	<p><img alt="ajax.jpg" src="http://jacky.seezone.net/archives/ajax.jpg" width="379" height="278" border="0" /></p>

	<p>這個技術的主角 XMLHttpRequest 的最主要特點，在於能夠不用重新載入整個版面來更新資料，也就是所謂的 Refresh without Reload。因為與伺服器之間的溝通，完全是透過 Javascript 來實行，也就沒有傳統網頁的表單發送而引至的整版重載的 overhead，帶給用戶很慢的感覺。又因為使用 XMLHttpRequest 本身傳送的資料量很小，所以反應會更快，也就讓網絡程式更像一個桌面程式。</p>

	<p>





<span id="more-1127"></span><br />
Ajax 的技術表明了要使用 <span class="caps">XML</span> + <span class="caps">XSLT</span> 作為資料格式，其實並非必要， XMLHttpRequest 本身並沒有限制資料格式，可以是 <span class="caps">XML</span> 又或是純文字格式的文字，然後到 Javscript  的時候就可以隨自己的喜歡來操作了。例如在 <a href="http://www.google.com/webhp?complete=1&#38;amp;hl=en">Google Suggests</a> 裏，回傳的資料其實本身就是 Javscript 。</p>

	<p>其中一個 Ajax 的應用，可用於表單的資料核對。表單核對是每一個網絡應用程式必需一環，確保使用者輸入正確的資料後，才真正的進行動作。以往的做法是用 Javascript 或伺服器來做，如果兩邊都寫，那麼就會產生兩堆不同的核對程式碼，管理很不方便。用了 Ajax 的方法，就可以完全將核對邏輯放在伺服器端，客戶端的 Javascript 程式，則只是傳送用戶所輸入的資料給伺服器核對，如果有錯誤的話，則回傳錯誤訊息。</p>

	<p>不過，用 Ajax 的方法究竟要如何傳送整個表單呢？如果只是單純的一、兩個輸入的話，則可以用簡單的 <span class="caps">GET</span> 的方法來傳送這一、兩個輸入資料。但如果表單上面有很多不同的輸入，可以有自動的方法去取得表單上的各個資料然後送出，而不是要逐個輸入值寫入 <span class="caps">GET</span> 的 url 裏？這要看看發展下去有沒有好用的 library 代勞。</p>

	<p>另一個問題是，用戶可能基於安全的理由而將瀏覽器的 Javascript  關掉，所以設計時要考慮到此一點：究竟是要讓用戶必需開啟 Javascript 才可以用，還是設計到表單可以單獨的運作， Javascript  則只是增加實用性 ( <a href="http://www.onlinetools.org/articles/unobtrusivejavascript/">Unobtrusive Javascript</a> )？這當中又會有很多考慮，開發上有一定的難度。</p>

	<p>雖然如此， 在這一年有關 Ajax 技術的發展會更多，我們會看到很多不同的網站，運用這種技術來增加頁面的互動性和實用性，大家拭目以待。</p>

	<p>相關連結：</p>

	<ul>
		<li><a href="http://www.adaptivepath.com/publications/essays/archives/000385.php">Adaptive Path &#8211; Ajax: A New Approach to Web Applications</a></li>
		<li><a href="http://www.onlinetools.org/articles/unobtrusivejavascript/">Unobtrusive Javascript</a></li>
		<li><a href="http://www.37signals.com/svn/archives/001070.php">Signal vs Noise &#8211; XMLHttpRequest, Ajax, and the customer experience</a></li>
		<li><a href="http://www.webpasties.com/xmlHttpRequest/" title="With Baby Steps">WebPasties &#8211; Guide to Using XMLHttpRequest</a></li>
		<li><a href="http://www.xml.com/pub/a/2005/02/09/xml-http-request.html"><span class="caps">XML</span>.com &#8211; Very Dynamic Web Interface</a></li>
		<li><a href="http://jibbering.com/2002/4/httprequest.html">Using the XMLHttpRequest Object</a></li>
		<li><a href="http://jpspan.sourceforge.net/wiki/doku.php?id=javascript:xmlhttprequest"><span class="caps">JPSPAN</span>: javascript &#8211; xmlhttprequest</a></li>
	</ul>

	<p><b>Updated</b></p>

	<ul>
		<li>發覺應該用 &#8220;refresh without reload&#8221; 比較恰當&#8230;.</li>
		<li>加入新的 <a href="http://jpspan.sourceforge.net/wiki/doku.php?id=javascript:xmlhttprequest"><span class="caps">JPSPAN</span></a> 於相關資料，相當豐富的 xmlhttprequest 的資源庫</li>
	</ul>


	Tags:  <a href="http://jacky.seezone.net/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://jacky.seezone.net/tag/javascript/" title="javascript" rel="tag">javascript</a>, <a href="http://jacky.seezone.net/tag/technology/" title="technology" rel="tag">technology</a>, <a href="http://jacky.seezone.net/tag/web/" title="web" rel="tag">web</a><br />
]]></content:encoded>
			<wfw:commentRss>http://jacky.seezone.net/2005/02/25/1127/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>破解google suggest</title>
		<link>http://jacky.seezone.net/2004/12/16/1060/</link>
		<comments>http://jacky.seezone.net/2004/12/16/1060/#comments</comments>
		<pubDate>Thu, 16 Dec 2004 10:59:32 +0000</pubDate>
		<dc:creator>Jacky</dc:creator>
				<category><![CDATA[網絡]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[suggest]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://jacky.seezone.net/?p=1060</guid>
		<description><![CDATA[新的 google suggest 引來了不少迴響，其實其中所用的技術並不新鮮，在 gmail 裏就給大量地運用了： XMLHttpRequest ，一些小小的request而可以做到需要Server處理的資料不一定要使用form submit。因為form submit會令page refresh，當中會令速度減漫。用XMLHttpRequest的javascript object，就可以做到Renew data without page refresh的神效。而在網絡上，也有不少類似的應用，例如 Live Search 。而這個XMLHttpRequest也令到web application更像一個desktop application了。 Google Suggest應用的XMLHttpRequest所以並不神奇，但當中的onkeypress event的處理卻值得一讚。這位朋友將google suggest裏壓縮了的js自己重新indent，並分析裏面的program flow，還要估計他們的variables、function的用處 (他們都寫得很cryptic的說&#8230;) ，真是辛苦了。有興趣的去看看吧！ Related Link: Google Suggest Dissected&#8230; Tags: ajax, google, javascript, suggest, technology, web]]></description>
			<content:encoded><![CDATA[	<p>新的 <a href="http://www.google.com/webhp?complete=1&#38;amp;hl=en">google suggest</a> 引來了不少迴響，其實其中所用的技術並不新鮮，在 <a href="http://www.gmail.com">gmail</a> 裏就給大量地運用了： <a href="http://developer.apple.com/internet/webcontent/xmlhttpreq.html">XMLHttpRequest</a>  ，一些小小的request而可以做到需要Server處理的資料不一定要使用form submit。因為form submit會令page refresh，當中會令速度減漫。用XMLHttpRequest的javascript object，就可以做到Renew data without page refresh的神效。而在網絡上，也有不少類似的應用，例如 <a href="http://blog.bitflux.ch/archive/livesearch_roundup.html">Live Search</a>  。而這個XMLHttpRequest也令到web application更像一個desktop application了。</p>

	<p>Google Suggest應用的XMLHttpRequest所以並不神奇，但當中的onkeypress event的處理卻值得一讚。這位朋友將google suggest裏壓縮了的js自己重新indent，並分析裏面的program flow，還要估計他們的variables、function的用處 (他們都寫得很cryptic的說&#8230;) ，真是辛苦了。有興趣的去看看吧！</p>

	<p>Related Link: <a href="http://serversideguy.blogspot.com/2004/12/google-suggest-dissected.html">Google Suggest Dissected&#8230;</a></p>
	Tags:  <a href="http://jacky.seezone.net/tag/ajax/" title="ajax" rel="tag">ajax</a>, <a href="http://jacky.seezone.net/tag/google/" title="google" rel="tag">google</a>, <a href="http://jacky.seezone.net/tag/javascript/" title="javascript" rel="tag">javascript</a>, <a href="http://jacky.seezone.net/tag/suggest/" title="suggest" rel="tag">suggest</a>, <a href="http://jacky.seezone.net/tag/technology/" title="technology" rel="tag">technology</a>, <a href="http://jacky.seezone.net/tag/web/" title="web" rel="tag">web</a><br />
]]></content:encoded>
			<wfw:commentRss>http://jacky.seezone.net/2004/12/16/1060/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

