How to write an RSS reader in AJAX

IBM Developers work has a tutorial on how to build an RSS reader using AJAX. The amount of code you need to write is scary (and this is not the complete code). Adobe Flex 2 plus a simple Java programming to support DB interaction allows you to achive the same functionality using A LOT LESS coding.Just take a look at this screen:

The Flex 2 code below populates the bottom portion of the screen with financial news based on the selected stock on top ( (it does not work with a DB to store the RSS source so it’d add some 50 lines of Java code ). The data come from the Yahoo! Finance RSS feed. The URL looks as follows: http://finance.yahoo.com/rss/headline?s=MSFT

The suffix can be MSFT or whatever is selected on top is being passed to the code below.

Flex lt;mx:HTTPService gt; object is used through a proxy deployed under Tomcat or any other servlet container.

The entire application code and its description can be found in this article.

lt;?xml version= “1.0 ” encoding= “utf-8 “? gt;

lt;mx:Panel xmlns:mx= “http://www.adobe.com/2006/mxml

title= “News ” width= “100% ” height= “100% ” gt;

lt;mx:DataGrid id= “newsGrid ” width= “100% ” height= “100% ”

dataProvider= “{newsFeed.lastResult.channel.item} ” variableRowHeight= “true ” gt;

lt;mx:columns gt;

lt;mx:DataGridColumn headerText= “Date ” dataField= “pubDate ” width= “200 “/ gt;

lt;mx:DataGridColumn headerText= “Title ” dataField= “title ” wordWrap= “true ” / gt;

lt;mx:DataGridColumn headerText= “Description ” dataField= “description ” wordWrap= “true ” / gt;

lt;mx:DataGridColumn headerText= “Link ” width= “130 ” gt;

lt;mx:itemRenderer gt;

lt;mx:Component gt;

lt;mx:LinkButton label= “{data.link} ” click= “navigateToURL(new URLRequest(data.link), ‘_blank’) “/ gt;

lt;/mx:Component gt;

lt;/mx:itemRenderer gt;

lt;/mx:DataGridColumn gt;

lt;/mx:columns gt;

lt;/mx:DataGrid gt;

lt;mx:HTTPService id= “newsFeed ” useProxy= “true ”

destination= “YahooFinancialNews ” concurrency= “last ”

resultFormat= “e4x ” fault= “onFault(event) ” gt;

lt;/mx:HTTPService gt;

lt;mx:Script gt;

lt;![CDATA[

import mx.utils.ObjectProxy;

import mx.rpc.events.*;

public function set security(value:String):void {

this.title = “News: ” + value;

newsFeed.send({s:value});

}

private function onFault(event:FaultEvent):void {

mx.controls.Alert.show

(

“Destination: ” + event.currentTarget.destination + “\n ” +

“Fault code: ” + event.fault.faultCode + “\n ” +

“Detail: ” + event.fault.faultDetail, “News feed failure ”

);

}

]] gt;

lt;/mx:Script gt;

lt;/mx:Panel gt;

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s