繼續我們的 blog reader 剩下的 data.js
今天要繼續補上 getBlogPosts( )。
如有任何問題,我建議以官方的範例為主。
http://msdn.microsoft.com/en-us/library/windows/apps/hh974582.aspx
哎...怎麼辦...有種越來越看不懂的趨勢。
getBlogPosts 這個 function 主要是要用來解析抓到的 blogs 的 xml 資料。
這邊其實是比較不完整的程式碼, 引用於官方。但註解是自己寫的。
(function () {
//補腦加上昨天以及前天的內容的內容
//昨天寫到 acquireSyndication()
function getBlogPosts() {
//當 getFeeds取得所有 blogs 資料之後
getFeeds().then(function () {
blogs.forEach(function (feed) {
feed.dataPromise.then(function (articlesResponse) {
var articleSyndication = articlesResponse.responseXML;
//responseXML 取得文章
//querySelector 取得 blog 的標題跟最後修改日
feed.title = articleSyndication.querySelector("feed > title").textContent;
var published = articleSyndication.querySelector("feed > entry > published").textContent;
var date = new Date(published);
//Globalization.DateTimeFormatting.DateTimeFormatter
//查了一下,才知道原來是用來轉換上次更新的日期...
var dateFmt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter(
"month.abbreviated day year.full");
var blogDate = dateFmt.format(date);
feed.updated = "Last updated " + blogDate;
// Get the blog posts
getItemsFromXml(articleSyndication, blogPosts, feed);
});
});
});
return blogPosts;
}
//待續
//後面的部分我可能接下來不會介紹
})();
總之,整體的 data.js
簡單的架構如此:
1.定義變數跟函數
2.設定資料的綁定 WinJS.Binding.List()
3.處理資料,如 getFeeds( )
4.acquireSyndication( )非同步的取得該 URL 的資料(使用 WinJS.xhr)
5.getBlogFeeds( ), 取得 blogs 的資料然後抓標題,更新時間
6.getItemsFromXml( ) 將 blogs 的資料存到object,如已經定義好的 title, author, month, day, content...等等。
明天可能不會介紹到剩下的程式。
直接把實作的成果照片po起來給大家看一下是怎麼回事~
yiying提到:
越來越看不懂
不都是ascii字符集嗎...
是火星文...xd
火星文不能用左腦看啦~
欲知詳情,請待下回分曉.
各位客官,請打賞酒錢~~~