[日記]使用AJAX實作目錄及日曆功能!
剛剛才在說要靠三方公司才能實現的功能....我現在就寫出來,看看用AJAX要如何實作吧!
AJAX是個參雜了多種技術的程式語言。不過其實我使用到的,至多就只有到「引用在同一個網域下的網頁內容」這個程度而已。
Blogger一個很值得嘉獎的地方,就在於它的網頁是使用XHTML來撰寫(當然,這也跟使用者自定義的範本有關,還是有人堅持要用傳統的Big-5網頁就是)。XHTML兼有了HTML的格式顯示能力與XML的資料定義能力。使用AJAX引用網頁的時候,XML能夠幫助程式快速地架構出需要的資料,再搭配JavaScript進行分析、篩選,最後再使用JavaScript來呈現。
以上是這個做法的基本精神,接著我們來談談要如何實作這個功能。
這兩個功能都必須取得資料,這時候Blogger的存檔(Archives)功能便派得上用場。Blogger存檔分成按月、按週、按天儲存,按月儲存的話檔名格式皆為yyyy_mm_01_[blogname]_archive.html。因此,只要定義最早的存檔期間,便能依照這個格式,使用JavaScript一個月一個月地取得Blog的文章,在同一個網頁上重複引用每月存檔,便可獲得所有的文章內容。
只要能夠獲得Blog內全部文章的內容,要做目錄或月曆就完全不是問題了。
目錄的話,首先先照上述方法取得全部文章的標題與永久連結,然後判斷標題前[XX]裡面的字。當然,這必須要Blog發文時都習慣加上標籤才能做到。因為Telnet BBS養成的習慣,所以我從一開始的文章就是用這方式來寫,完全不成問題。按照這方式的進階用法,甚至可以讓參觀者自定義搜尋的字串,而實作出搜尋的功能。(雖然Blogger已經有內建搜尋啦)
至於月曆呢,取得資料上主要是判斷文章的日期(要搭配設定中的格式),這點與目錄相同。但比較麻煩的則是要做出月曆的格式,這個就是考驗JavaScript的程式撰寫功力啦,只要能克服這關,一切就海闊天空了。
這些大致上只是個概念,撰寫成程式的話,將可以套用到任何一個Blogger上。雖然這好像是很有貢獻的事情,不過對於仍在期中考的我來說,這樣子真的好嗎?XDXDD