¡¡¡¡RSS¾ÛºÏÆ÷ÊÇÒ»ÖÖÌØ±ðÊʺÏÓÚʹÓñê×¼AJAXÒýÇæ½øÐй¹½¨µÄÓ¦ÓóÌÐò£¬È»¶ø£¬ÒªÊµÏÖ¶ÔRSS»ØÀ¡µÄ¿çÓòµÄAJAXÇëÇóÍùÍùÊǺÜÄѵġ£ÔÚ±¾ÎÄÖУ¬ÎÒ½«ÏòÄãչʾÈçºÎÀûÓÃÒ»¸ö¼òµ¥µÄPHPº¯ÊýÀ´ÊµÏÖ"ÇŽÓ"AJAXÒýÇæºÍRSSÄÚÈÝ¡£
¡¡¡¡Ò»¡¢ ÒýÑÔ
¡¡¡¡ÏÖÔÚ£¬¿ª·¢Ò»¸öRSS¾ÛºÏÆ÷ÒѾ²»ÔÙÊÇÀ§ÄѵÄÊÂÇ飬µ«ÊÇ¿ª·¢Ò»¸ö¸ßÖÊÁ¿µÄRSS¾ÛºÏÆ÷È´ÈÔÈ»´æÔÚÏ൱µÄÄѶȡ£ÁíÒ»·½Ã棬´´½¨Ò»¸ö¶¨ÖÆ¾ÛºÏÆ÷Ò»°ã²»ÊǺÜÄÑ£¬²¢ÇÒÔÚÕâÖÖ¾ÛºÏÆ÷ÄÚÄܹ»Ìṩһ¸öÄã×Ô¼ºÑ¡ÔñµÄ½Ó¿Ú¡£RSS¾ÛºÏ´ú±íÁËÒ»ÀàÌØ±ðÊʺÏÓÚÒ»¸öAJAXÓ¦ÓóÌÐòËùÏû·ÑµÄÊý¾Ý£¬ÕâÊÇÒòΪ£ºËüÊÇXML¸ñʽµÄ£¬²¢ÇÒAJAXÄܹ»Á¼ºÃµØÏÔʾÐµĻØÀ¡¶ø²»±Ø½øÐÐÒ³ÃæË¢Ð¡£È»¶øÎÊÌâ×ÜÊÇ´æÔÚ£ºÔÚÒ»¸ö±ê×¼µÄAJAXÒýÇæÖÐʵÏÖ¿çÓòµÄAJAXÇëÇóÊDz»¿ÉÄܵġ£ÔÚ±¾ÎÄÖУ¬ÎÒ½«ÏòÄãչʾÈçºÎÀûÓÃÒ»¸öºÜ¼òµ¥µÄPHPº¯ÊýÀ´ÇŽÓAJAXÒýÇæºÍÔ¶³ÌÄÚÈÝ£¨ÔÚ±¾ÎÄÖÐËüÖ¸µÄÊÇRSS»ØÀ¡£©¡£
¡¡¡¡¡¾Ìáʾ¡¿ ±¾Îļٶ¨ÄãÒѾ¶ÔPHPÓÐÒ»¸ö»ù±¾Àí½â²¢ÇÒÓÐʹÓÃAJAXºÍ·ÖÎöXMLµÄ¾Ñé¡£ÒªÈ«ÃæÀí½â±¾ÎÄËùÌṩµÄʾÀý£¬ÄãÐèÒªÏÂÔØÏàÓ¦µÄÔ´ÂëÎļþ¡£
¡¡¡¡¶þ¡¢ ¿ªÊ¼
¡¡¡¡ÔÚÎÒÃÇÕýʽ¿ªÊ¼Ç°£¬ÎÒÏë¼ò¶ÌµØ½éÉÜÒ»ÏÂÎÒÃǽ«ÓÃÓÚ·¢³öÇëÇóµÄAJAXÒýÇæ¡£¸ÃÒýÇæÄܹ»¼ò»¯AJAXµ÷Óò¢ÇÒÓÐÖúÓÚÏû³ýµ±·¢³öÇëÇóºÍµ÷¶ÈÏìӦʱ´æÔڵĴóÁ¿ÈßÓà¡£ÎÒ²»»áÏêϸÌÖÂÛËüµÄ×é³É´úÂ룬¶ø½öÏòÄã¼ò¶ÌµØ½éÉÜÎÒÃÇÔÚ±¾ÎÄÖÐÈçºÎʹÓÃËü¡£
¡¡¡¡Ê×ÏÈ£¬ÎÒÃÇÐèÒªµ¼Èë¹¹³É¸ÃÒýÇæµÄËùÓÐJavaScriptÎļþ¡£°üº¬ÔÚÎÒÃǵÄindex.htmlÎļþÖеĴúÂë¿´ÆðÀ´ÈçÏÂËùʾ£º
£¼script type="text/javascript" src="js/model/HTTP.js"£¾£¼/script£¾
£¼script type="text/javascript" src="js/model/Ajax.js"£¾£¼/script£¾
£¼script type="text/javascript" src="js/model/AjaxUpdater.js"£¾£¼/script£¾
¡¡¡¡Ò»µ©ÎÒÃǵ¼Èë¸ÃJavaScriptÎļþ£¬ÎÒÃǾͿÉÒÔͨ¹ý±àдÀàËÆÏÂÁеĴúÂëÀ´·¢³öÒ»¸öÇëÇó£º
AjaxUpdater.Update('GET'£¬ 'url'£¬callbackMethod);"£¾
¡¡¡¡¸ÃAjaxUpdaterÊÇÒ»¸ö¶ÔÏó£¬Ëü¸ºÔð´¦ÀíÎÒÃǵÄAJAXµ÷Óá£ÎÒÃǼòµ¥µØµ÷ÓÃËüµÄUpdate·½·¨²¢ÇÒ´«µÝÇëÇóµÄ·½·¨£¬ÎÒÃÇÇëÇóµÄURL£¬ÒÔ¼°ÎÒÃÇÏë°Ñ¸ÃÏìÓ¦´úÀíµ½µÄ»Øµ÷·½·¨¡£
¡¡¡¡µ±·¢³öÎÒÃǵÄÇëÇóʱ£¬Õâ¾ÍÊÇËùÓÐÎÒÃÇÐèÒª¹ØÐĵġ£ÏÖÔÚ£¬ÈÃÎÒÃǼ¯ÖÐÓÚ¶¨ÖÆRSS¾ÛºÏÆ÷µÄ¹¦ÄÜ¡£
¡¡¡¡Èý¡¢ Èë¿Úµã
¡¡¡¡Ö¸Ïò¸Ã¾ÛºÏÆ÷µÄÈë¿ÚÊÇindex.htmlÎļþ£¬ÎÒÃÇ´Óä¯ÀÀÆ÷ÖжÔËü½øÐе÷Óá£ÏÂÃæÊÇÃèÊö¸ÃindexµÄ´úÂ룺
£¼html£¾
£¼head£¾
£¼title£¾RSS Aggregation with PHP and Ajax£¼/title£¾
£¼link href="css/layout.css" rel="stylesheet" type="text/css" /£¾
£¼script type="text/javascript" src="js/model/HTTP.js"£¾£¼/script£¾
£¼script type="text/javascript" src="js/model/Ajax.js"£¾£¼/script£¾
£¼script type="text/javascript" src="js/model/AjaxUpdater.js"£¾£¼/script£¾
£¼script type="text/javascript" src="js/controller/Aggregator.js"£¾£¼/script£¾
£¼script type="text/javascript" src="js/view/Feed.js"£¾£¼/script£¾
£¼/head£¾
£¼body£¾
£¼div id="Aggregator"£¾
£¼form name="feedForm" method="post" action="javascript:AjaxUpdater.Update('GET'£¬ 'bridge/rss.php?feed=' + document.feedForm.feed.value£¬ Aggregator.Read);"£¾
£¼div class="header"£¾
£¼input type="text" name="feed" id="feed" size="50"£¾
£¼input type="submit" name="submit" value="Add Feed"£¾
£¼/div£¾
£¼/form£¾
£¼div class="leftColumn"£¾
£¼div id="titles"£¾£¼/div£¾
£¼div id="loading"£¾£¼/div£¾
£¼/div£¾
£¼div class="rightColumn"£¾
£¼div id="description"£¾£¼/div£¾
£¼/div£¾
£¼/div£¾
£¼/body£¾
£¼/html£¾
¡¡¡¡Õâ¸öÎļþ¸ºÔðµ¼Èë´¦ÀíÎÒÃÇµÄ¾ÛºÏÆ÷ÏÔʾµÄCSSÎļþºÍËùÓеÄÓÃÓÚ´´½¨¸Ã¾ÛºÏÆ÷ºÍ·¢³öAJAXÇëÇóµÄJavaScriptÎļþ¡£
¡¡¡¡¡¾Ìáʾ¡¿±¾ÎIJ¢Ã»ÓÐÌÖÂÛ¸ÃCSSÎļþ£»ÎÒÃÇÖ»¼¯ÖÐÓÚÌÖÂÛͨ¹ýJavaScriptʵÏֵľۺϺͷÖÎö¡£
¡¡¡¡È»ºó£¬ÓɸÃË÷Òý¶¨ÒåDIV±ê¼Ç£¬ÕâЩ±ê¼Ç½«ÓÃÓÚÃèÊö½ÓÊÕµ½µÄÊý¾ÝµÄ²¼¾Ö¡£Ëü»¹°üº¬Ò»¸ö±íµ¥£¬ÆäÖÐÓÐÒ»¸öÊäÈëÓòÓÃÀ´ÊäÈëRSS»ØÀ¡µÄURL£¬»¹ÓÐÒ»¸öÌá½»°´Å¥ÓÃÓÚÏòËüÃÇ·¢ËÍÇëÇó¡£µ±µã»÷¸Ã°´Å¥Ê±£¬½«·¢ËÍÒ»¸öÇëÇóÒÔ½ÓÊÕRSS»ØÀ¡²¢ÇҰѸÃÏìÓ¦·¢Ë͵½Ò»¸ö³ÆÎªAggregatorµÄ¶ÔÏó£»ÎÒÃǽ«ÔÚÌÖÂÛʹÓÃAJAX¼¼Êõ½øÐÐÔ¶³ÌRSS»ØÀ¡¼ìË÷Ö®ºóÀ´½éÉÜËü¡£
¡¡¡¡ËÄ¡¢ ¿çÓòAJAXÇëÇó
¡¡¡¡¿çÓòAJAXÇëÇóÊDz»¿ÉÄܵ쬵«ÊǵÄÈ·´æÔÚһЩ·½·¨ÒÔÀûÓÃÒ»ÖÖ·þÎñÆ÷¶ËÓïÑÔÀ´½â¾öÕâ¸öÎÊÌâ¡£ÔÚÕâÒ»½ÚÖУ¬ÎÒÒªÌÖÂÛÈçºÎʹÓÃPHPÀ´´´½¨AJAXÇëÇóºÍÒ»¸öÔ¶³ÌRSS»ØÀ¡Ö®¼äµÄÒ»¸öÇŽӣ¬½ø¶øÊµÏֳɹ¦µØ¿çÓòÇëÇó֮ĿµÄ¡£ÎÒÏëÄãºÜ¿ÉÄÜ»á¶ÔËüÈç´ËÈÝÒ×µÄʵÏָе½¾ªÑÈ¡£
¡¡¡¡PHPÖÐÌṩÁËÒ»¸ö³ÆÎªfile_get_contentsµÄ±¾µØ·½·¨£¬ËüÄܹ»°ÑÕû¸öÎļþÄÚÈݶÁÈ¡µ½Ò»¸ö×Ö·û´®ÖС£Èç¹ûÆô¶¯fopen°ü×°Æ÷µÄ»°£¬Õâ¸öÎļþ¿ÉÒÔÊÇÒ»¸öÔ¶³ÌÎļþ£»ÔÚÄã°²×°PHPʱĬÈÏÇé¿öÏÂÊÇÆô¶¯µÄ¡£Èç¹ûÔÚphp.iniÎļþÄÚ°Ñallow_url_fopenÉèÖÃΪoffËü²Å´¦ÓÚ½ûֹ״̬¡£ÏÂÁдúÂëÏàÓ¦ÓÚ¸Ãbridge.phpÎļþµÄÄÚÈÝ£¬µ±Ìá½»±íµ¥Ê±ÎÒÃÇʹÓÃindex.html·¢ËÍÇëÇó£º
£¼?
header("Content-Type: application/xml; charset=UTF-8");
echo file_get_contents($_GET['feed']);
?£¾
¡¡¡¡ÉÏÃæ´úÂëÖеĵÚÒ»ÐÐÊÇÒ»¸öÍ·£¨header£©£¬Ëü¸ºÔð°ÑÏìÓ¦µÄÄÚÈÝÀàÐÍÉèÖÃΪÕë¶ÔÎÒÃǵÄÇëÇó¶ÔÏóµÄÓÐЧµÄXML¡£È»ºó£¬µ÷ÓÃfile_get_contents£¬²¢½áºÏ»ØÀ¡URL-ÕâÊÇͨ¹ýÎÒÃǵĴÓindex.htmlÎļþÄÚµÄ±íµ¥·¢³öµÄÇëÇó½øÐд«µÝµÄ¡£Ò»µ©ÕâЩÊý¾Ý¾ÍÐ÷£¬AJAXÒýÇæ¼´°ÑËüÃÇ´úÀíµ½»Øµ÷·½·¨-ÎÒÃǵÄAggregator¶ÔÏó¡£
¡¡¡¡Îå¡¢ Aggregator¶ÔÏó
¡¡¡¡¸ÃAggregator¶ÔÏó¸ºÔð´ÓAJAXÒýÇæÖнÓÊÕÏìÓ¦¡£ÏÂÁдúÂëչʾÁ˸öÔÏó(Ò»¸ö³ÆÎªfeedCollectionµÄÊý×飬Ëü½«ÓÃÀ´´æ´¢ËùÓеÄͨ¹ý±»¼ìË÷µÄ»ØÀ¡´´½¨µÄ»ØÀ¡¶ÔÏó)µÄ´´½¨£¬»¹ÓÐÒ»¸ö³ÆÎªReadµÄ·½·¨(ÏàÓ¦ÓÚ´Óindex.html±íµ¥Öз¢³öµÄÇëÇóµÄ»Øµ÷·½·¨)¡£µ±¸Ã»Øµ÷·¢Éúʱ£¬Í¨¹ýÒ»¸ö¶¨ÖÆAJAX¶ÔÏó·½·¨£¨ËüʹÓÃÒ»¸öÃèÊöÏÔʾ¼ÓÔØÏûÏ¢µÄDIVÔªËØµÄ×Ö·û´®×÷Ϊ²ÎÊý£©¼ì²éÇëÇóµÄreadyState¡£
Aggregator = new Object();
Aggregator.feedCollection = new Array();
Aggregator.Read = function()
{
¡¡if(Ajax.checkReadyState('loading') == "OK")
¡¡{
¡¡¡¡var title = Ajax.getResponse().getElementsByTagName('title')[0].firstChild.data;
¡¡¡¡var _link = Ajax.getResponse().getElementsByTagName('link')[0].firstChild.data;
¡¡¡¡var items = Ajax.getResponse().getElementsByTagName('item');
¡¡¡¡var feed = new Feed(Aggregator.feedCollection.length£¬ title£¬ _link£¬ items);
¡¡¡¡Aggregator.feedCollection.push(feed);
¡¡¡¡Aggregator.displayFeedTitles(feed);
¡¡}
}
¡¡¡¡ÔÚ¸ÃRead·½·¨ÖУ¬ÎÒÃÇÒª×öµÄµÚÒ»¼þÊÂÇéÊÇ·ÖÎöRSS»ØÀ¡ÖеıêÌ⣬Á´½ÓºÍÏî¡£Ò»µ©ÎÒÃÇÓµÓÐÕâЩֵ£¬ÎÒÃǾͿÉÒÔ´´½¨Ò»¸öеÄFeed¶ÔÏó£¨ÎÒÃǽ«ÔÚºóÃæ¼¯ÖÐÌÖÂÛ£©¡£Õâ¸ö¶ÔÏóʹÓÃÁËfeedCollectionµÄ³¤¶È£¨×÷Ϊһ¸öID£©£¬ÒÔ¼°±êÌ⣬Á´½ÓºÍÀ´×Ô»ØÀ¡µÄÏȻºó£¬¸ÃFeed¶ÔÏó±»Ìí¼Óµ½feedCollectionºÍÒ»¸ö³ÆÎªdisplayFeedTitlesµÄ·½·¨ÖÐÒÔ±ãÔÚ¸ÃFeed¶ÔÏóÖÐÏÔʾÏàÓ¦ÓÚÿһÏîµÄ±êÌâ¡£
Aggregator.displayFeedTitles = function(feed)
{
¡¡document.getElementById('titles').innerHTML += feed.GetTitle();
¡¡Aggregator.DisplayTitles(feed.id);
}
¡¡¡¡Õâ¸ö·½·¨ÒÔFeed¶ÔÏó×÷Ϊһ¸ö²ÎÊý£¬ÏÔʾËüµÄ±êÌ⣬Ȼºóµ÷ÓÃÁíÒ»¸ö³ÆÎªDisplayTitlesµÄ·½·¨£º
Aggregator.DisplayTitles = function(id)
{
¡¡var titleArray = Aggregator.feedCollection[id].GetAllTitles();
¡¡var titles = document.createElement("div");
¡¡titles.id = "subTitle_"+ id;
¡¡document.getElementById('title_'+id).appendChild(titles);
¡¡for(var i=0; i£¼titleArray.length; i++)
¡¡{
¡¡¡¡titles.innerHTML += titleArray[i] +"£¼br /£¾";
¡¡}
}
¡¡¡¡Õâ¸ö·½·¨½ÓÊÕÒ»¸ö»ØÀ¡ID²¢Ê¹ÓÃËü´ÓfeedCollectionÊý×éÖмìË÷»ØÀ¡²¢Çҵõ½ËüµÄËùÓбêÌâ¡£Ò»µ©½ÓÊÕµ½ÕâЩ±êÌ⣬ÎÒÃǽ«Îª¸Ã»ØÀ¡ÖеÄÏî±êÌâ´´½¨Ò»¸öеÄDIVÔªËØ²¢ÇÒ°ÑËüÌí¼ÓÔÚÏàÓ¦ÓÚÌØ¶¨µÄ»ØÀ¡µÄ±êÌâÖ®ºó¡£Õ⽫ÔÊÐíÎÒÃÇͨ¹ýµã»÷»ØÀ¡±êÌâÀ´Çл»ÏÔʾÄÚÈÝÖÐÏîµÄ±êÌâ¡£Ò»µ©Ìí¼Ó¸ÃеÄDIVÔªËØ£¬ÎÒÃÇÖ»Ðè¼òµ¥µØ±éÀúËùÓеıêÌâ²¢ÇÒ°ÑËüÃǵ½Ìí¼Ó¸ÃеÄDIV¼´¿É¡£
¡¡¡¡ÉÏÃæÁ½¸ö·½·¨ÖеĵÚÒ»¸öÓÃÓÚʵÏÖÇл»»ØÀ¡ÖÐÏîµÄ±êÌ⣬µÚ¶þ¸ö·½·¨¸ºÔðÏÔʾһ¸öÔÚindex.htmlÎļþÖÐʹÓÃÎÒÃǵÄÃèÊöDIVÔªËØÖеĻØÀ¡µÄÄÚÈÝ¡£ÕâЩ»ØÀ¡µÄÄÚÈÝͨ¹ýFeed¶ÔÏóµÄGetDetails·½·¨½øÐÐÊÕ¼¯£¨ÔÚÏÂÒ»½Úµ±ÎÒÃÇ´´½¨Feed¶ÔÏóʱÔÙÌÖÂÛ£©¡£
Aggregator.ToggleTitles = function(id)
{
¡¡var titles = document.getElementById('subTitle_'+id);
¡¡titles.style.display = (titles.style.display == '') ? 'none' : '';
}
Aggregator.DisplayFeed = function(feedId£¬ id)
{
¡¡var details = Aggregator.feedCollection[feedId].GetDetails(id);
¡¡document.getElementById('description').innerHTML = details;
}
¡¡¡¡Áù¡¢ Feed¶ÔÏó
¡¡¡¡Õâ¸öFeed¶ÔÏóÊÇÒ»¸öprototype¡£Í¨¹ýËüµÄ¹¹ÔìÆ÷º¯Êý£¬Feed¶ÔÏó½ÓÊÕµ±ÎÒÃÇÔÚAggregator¶ÔÏóÖд´½¨Ëüʱ´«µÝµÄËùÓвÎÊý¡£ÕâЩ²ÎÊý·Ö±ðÏàÓ¦ÓÚ»ØÀ¡µÄID£¬±êÌ⣬Á´½ÓºÍÏî¡£ÔÚÕâ¸öº¯ÊýÖУ¬ÎÒÃÇÉèÖÃËùÓеÄȱʡֵ£¬´´½¨Ò»Ð©Êý×éÒÔ±¸ºóÓ㬲¢ÇÒ°ÑÏî·¢Ë͵½Ò»¸ö³ÆÎªparseItemsµÄ·½·¨¡£ÔÚÕâ¸öparseItems·½·¨ÖУ¬ÎÒÃǽ«¼ìË÷ÎÒÃǵĻØÀ¡ÏîÖеÄËùÓеÄÖµ²¢ÇÒÌî³äÎÒÃÇÔÚ¹¹ÔìÆ÷Öд´½¨µÄÄǸöÊý×é¡£
Feed.prototype.parseItems = function(items)
{
¡¡for(var i=0; i£¼items.length; i++)
¡¡{
¡¡¡¡var linkTitle = items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
¡¡¡¡var title = "£¼a href="#' class='title' onclick='Aggregator.DisplayFeed("+ this.id +"£¬ "+ i +");'£¾" + linkTitle +"£¼/a£¾";
¡¡¡¡this.titleArray.push(title);
¡¡¡¡this.linkTitleArray.push(linkTitle);
¡¡¡¡var _link = items[i].getElementsByTagName("link")[0].firstChild.nodeValue;
¡¡¡¡this.linkArray.push(_link);
¡¡¡¡var description = items[i].getElementsByTagName("description")[0].firstChild.nodeValue;
¡¡¡¡this.descriptionArray.push(description);
¡¡¡¡var pubDate = items[i].getElementsByTagName("pubDate")[0].firstChild.nodeValue;
¡¡¡¡this.pubDateArray.push(pubDate);
¡¡}
}
¡¡¡¡Ò»µ©ÎÒÃǰÑËùÓеÄÖµ´æ´¢ÔÚÊý×éÖУ¬µ±ÎÒÃÇ×¼±¸ºÃÏÔÊ¾Ò³ÃæÖеÄÊý¾ÝʱÎÒÃǾÍÄܹ»Ê¹ÓÃËüÃÇ¡£Õâ¸ö¶ÔÏóÖеĵÚÈý¸ö·½·¨¼¯ÖÐÓÚÏÔʾ»ØÀ¡ÖеÄÊý¾Ý£º
¡¡¡¡¡¤ GetTitle¸ºÔðµÃµ½»ØÀ¡±êÌ⣨×÷Ϊһ¸öÇл»Ïî±êÌâµÄÁ´½Ó£¬Í¨¹ýµ÷ÓÃAggregatorµÄtoggleTitles·½·¨À´ÊµÏÖ£©¡£
¡¡¡¡¡¤ GetAllTitles¼òµ¥µØ´Ó»ØÀ¡Öзµ»ØËùÓеÄÏî±êÌâ¡£
¡¡¡¡¡¤ GetDetails¸ºÔðʵÏÖÏÔʾ¸Ã»ØÀ¡ËùÓеÄϸ½Ú¡£Õâ¸ö·½·¨»ùÓÚ×÷Ϊһ¸ö²ÎÊý´«µÝµÄID¼ìË÷Feed¶ÔÏóµÄÊý×éÖеÄÖµ¡£È»ºó£¬ÕâЩֵ±»¸ñʽ»¯³ÉÒ»¸öHTML×Ö·û´®²¢·µ»Øµ½µ÷ÓÃÕߣ¬È»ºóÓɸõ÷ÓÃÕ߸ºÔð°ÑËüÃÇÌí¼Óµ½Ë÷ÒýÒ³Ãæ¡£
Feed.prototype.GetTitle = function()
{
¡¡return "£¼div id='title_"+ this.id +"'£¾£¼br/£¾£¼a href='#' onclick='Aggregator.ToggleTitles("+ this.id +");'£¾" + this.title + "£¼/a£¾£¼/div£¾";
}
Feed.prototype.GetAllTitles = function()
{
¡¡return this.titleArray;
}
Feed.prototype.GetDetails = function(id)
{
¡¡details = "£¼a href='"+ this.linkArray[id] +"' target='_blank'£¾"+ this.linkTitleArray[id] +"£¼/a£¾£¼br/£¾";
¡¡details += this.descriptionArray[id] +"£¼br/£¾";
¡¡details += this.pubDateArray[id];
¡¡return details;
}
¡¡¡¡Æß¡¢ С½á
¡¡¡¡µ½ÏÖÔÚΪֹ£¬ÓйØÉÏÃæ´´½¨µÄAggregator¶ÔÏóµÄÏÂÒ»²½Ó¦¸ÃÊÇÌí¼ÓÒ»¸ötimeoutÒÔ±ã¼ì²éÕë¶Ôµ±Ç°±»Ìí¼Óµ½¾ÛºÏÆ÷µÄRSS»ØÀ¡µÄ¸üС£ÁíÍ⣬¸Ã»ØÀ¡»¹Äܹ»±»±£´æµ½Ò»¸öÊý¾Ý¿âÖв¢ÇÒ±»»ùÓÚÓû§ÕÊ»§¼ÓÒÔ¼ìË÷¡£µ«ÊÇ£¬Òòƪ·ùËùÏÞ£¬ÕâЩ¹¦ÄÜÖ»ºÃÁôÓɶÁÕßÄúÀ´ÊµÏÖÁË¡¡
¡¡