1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng Ajax RSS Reader - Step by Step ppt

8 116 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 110,86 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xây dựng Ajax RSS Reader - Step by Step Chuẩn bị XMLHttpRequest Object Trong bước đầu tiên chúng ta cần chuẩn bị XMLHttpRequest object sử dụng để load remote RSS.. var RSSRequestObject =

Trang 1

Xây dựng Ajax RSS Reader - Step by Step

Chuẩn bị XMLHttpRequest Object

Trong bước đầu tiên chúng ta cần chuẩn bị XMLHttpRequest object sử dụng

để load remote RSS Tôi đã kiểm tra và phát hiện ra đoạn mã này chỉ hoạt động với Firefox, vì thế tôi đã thêm ActiveXObject phục vụ cho IE

var RSSRequestObject = false; // XMLHttpRequest Object

if (window.XMLHttpRequest) // try to create XMLHttpRequest

RSSRequestObject = new XMLHttpRequest();

if (window.ActiveXObject) // if ActiveXObject use the Microsoft.XMLHTTP RSSRequestObject = new ActiveXObject("Microsoft.XMLHTTP");

Viết mã HTML

Chỉ cần một vài dòng, 2 thẻ DIV được dùng để tạo status thông báo về tiến trình request data, và ajaxreader để chứa kết quả Trong onload chúng ta để AJAX Reader

Trang 2

<body onload="RSSRequest();">

<h2><acronym title="Asynchronous Javascript And

XML">AJAX</acronym> <acronym title="Rich Site

Summary">RSS</acronym> Reader</h2>

<div id="status" style="none"></div>

<div id="ajaxreader"></div>

</body>

AJAX RSS Reader

AJAX Reader sẽ gửi một request tới URL được đặt sẵn, sau đó chạy function ReqChange() khi dữ liệu đã được load Tôi đã thêm vào một vài hàm phụ phục

vụ cho việc ẩn/hiện kết quả

var Backend = 'http://ajax.phpmagazine.net/index.xml'; // Backend url

/*

* Main <acronym title="Asynchronous Javascript And

XML">AJAX</acronym> <acronym title="Rich Site

Summary">RSS</acronym> reader request

*/

Trang 3

function RSSRequest() {

// change the status to requesting data

HideShow('status');

document.getElementById("status").innerHTML = "Requesting data ";

// Prepare the request

RSSRequestObject.open("GET", Backend , true);

// Set the onreadystatechange function

RSSRequestObject.onreadystatechange = ReqChange;

// Send

RSSRequestObject.send(null);

}

function HideShow(id){

var el = GetObject(id);

if(el.style.display=="none")

el.style.display='';

else

el.style.display='none';

Trang 4

}

function GetObject(id){

var el = document.getElementById(id);

return(el);

}

Trình bày kết quả

Cuối cùng chúng ta chỉ cần hiện ra kết quả đã load vè Nếu như data đã được load hoàn chỉnh, chúng ta cần phân tích RSS data để xác định các thông tin như title, url, description

/*

* onreadystatechange function

*/

function ReqChange() {

// If data received correctly

if (RSSRequestObject.readyState==4) {

// if data is valid

Trang 5

if (RSSRequestObject.responseText.indexOf('invalid') == -1)

{

// Parsing <acronym title="Rich Site Summary">RSS</acronym>

var node = RSSRequestObject.responseXML.documentElement;

// Get Channel information

var channel = node.getElementsByTagName('channel').item(0);

var title = channel.getElementsByTagName('title').item(0).firstChild.data; var link = channel.getElementsByTagName('link').item(0).firstChild.data;

content = '<div class="channeltitle"><a

href="'+link+'">'+title+'</a></div><ul>';

// Browse items

var items = channel.getElementsByTagName('item');

for (var n=0; n <items var var try

var>['+items[n].getElementsByTagName('pubDate').item(0).firstChild.data+'] ';

}

Trang 6

catch (e)

{

var itemPubDate = '';

}

content += '<li>'+itemPubDate+'</font><a

href="'+itemLink+'">'+itemTitle+'</a></li>';

}

content += '</ul>';

// Display the result

document.getElementById("ajaxreader").innerHTML = content;

// Tell the reader the everything is done

document.getElementById("status").innerHTML = "Done.";

}

else {

Trang 7

// Tell the reader that there was error requesting data

document.getElementById("status").innerHTML = "<div class="error">Error requesting data.<div>";

}

HideShow('status');

}

}

Cập nhật Feed

Tôi đặt khoảng thời gian chờ để cập nhật feed là 20 phút

window.setInterval("update_timer()", 1200000); // update the data every 20 mins

/*

* Timer

*/

function update_timer() {

Trang 8

RSSRequest(); }

Ngày đăng: 13/08/2014, 11:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w