رادکام
امروزه با توجه به استفاده روز افزون از اینترنت و همچنین افزایش تعداد پایگاههای اطلاع رسانی که ارائه دهنده اخبار، اطلاعات تخصصی و... میباشند، نیاز به اشتراک گذاشتن اطلاعات بیش از پیش احساس میگردد. اما به اشتراک گذاشتن اطلاعات، بدون داشتن بستر فنی واحد و در عین حال استانداردی یکسان قابل انجام نخواهد بود. یکی از معمول ترین راههای استفاده مشترک از اطلاعات , قالب RSS میباشد که خود امروزه به عنوان یک استاندارد معرفی میگردد. برای پیاده سازی RSS، از زبان XML استفاده میشود که هم بوسیله بسیاری از زبانهای برنامه سازی پشتیبانی میگردد و هم سکوهای مختلف (Platform) برداشت یکسانی از آن دارند.
از شرکت Netscape به عنوان مبتکر RSS یاد میشود. بعد ها شرکت Userland توسعه و کنترل نسخه های RSS را بر عهده گرفت. اما همزمان با این شرکت، یک گروه غیر تجاری نیز که مبنای کار خود را تعاریف اصلی ارائه شده از سوی Netscape قرار داده بود، نسخه جدیدی برای RSS ارائه داد که این نسخه با استقبال Userland روبه رو نگردید. Userland به توسعه نسخه اصلی خود ادامه داد تا RSS 2.0 را ارائه کرد.
اولین بار Netscape برای پخش اخبار، مطالب و اطلاعات جدید خود، RSS را پایه گذاری کرد. این نسخه که RSS 0.90 نامیده میشد، در پایگاه my.netscape.com مورد استفاده قرار گرفت. نکته مهم در مورد این نسخه، پشتیبانی آن از scriptingNews ( قدیمی ترین قالبی که بنگاههای خبری برای به اشتراک گذاشتن اخبار از آن استفاده میکردند ) میباشد.(3/15/1999)
Netscape نسخه جدید RSS را بر مبنای scriptingNews 2.0b1 ارائه داد. در این نسخه گامهای اصلی استاندارد سازی این قالب برداشته شد و بسیاری از تگ ( tag ) های قالب <scriptingNews> مورد استفاده قرار گرفت ( 7/10/1999 ). پس از این Netscape کار برروی RSS را رها کرد و Userland با اعمال تغییراتی بر روی RSS 0.91، این نسخه را ارائه کرد (6/4/2000).
این نسخه که ارتباط چندانی با نسخه های قبلی RSS نداشت، توسط یک گروه خصوصی و با هدایت Real Dornfest ارائه شد. این نسخه که به نسبت نسخه های قبلی از پیچیدگی های بیشتری برخوردار بود، توسط Userland به عنوان نسخه جدید RSS پذیرفته نشد.( 8/14/2000).
در حقیقت این نسخه همان RSS 0.91 میباشد که تعدادی عناصر اختیاری به آن افزوده شده است. طراح آن Dave Winer طراح اصلی ScriptingNewsاز Userland میباشد(12/25/2000).
Dave Winer پس از ترک Userland این نسخه را طراحی کرد (9/18/2002). سپس مشخصات RSS 2.0 توسط دانشگاه هاروارد و تحت مجوز پدید آورندگان آن منتشر گردید. (7/15/2003).
پایگاه اطلاع رسانی Syndic8.com اعلام کرده است که بیش از 50 درصد از feed های موجود از RSS 0.91 استفاده میکنند، تنها 25 درصد، RSS 1.0 را مورد استفاده قرار میدهند و 25 در صد باقی مانده از قالب RSS 9.x و یا RSS 2.0 استفاده میکنند.
با این حال، گفتن این مطلب که کدامیک از این نسخه ها به نسبت دیگری در وضعیت بهتری قرار میگیرد، کار چندان ساده ای نمیباشد و با توجه به اینکه امروزه نرم افزار های موجود، تمامی قالب ها را پشتیبانی میکنند، از این لحاظ مشکلی برای کاربران ایجاد نخواهد کرد. اما به واسطه اینکه RSS 2.0 آخرین نسخه ارائه شده میباشد و RSS 1.0 تنها نسخه ای است که از استانداردهای دیگر نسخه ها پیروی نمیکند، ما از RSS2.0 استفاده و آن را توصیه مینماییم.
مدیران پایگاههای اطلاع رسانی به دو صورت میتوانند از RSS استفاده نمایند:
نرم افزار های مختلفی برای جمع آوری و خواندن اطلاعات پایگاههای ارائه دهنده RSS وجود دارد که ما 3 نمونه از آنها را در اینجا معرفی میکنیم:
با توجه به اینکه RSS از فایلهای XML استفاده میکند، پیش از شروع، چند قانون ساده در مورد فایلهای XML را به خاطر بسپارید:
فایل RSS با عنصر <rss> آغاز شده و با <rss/> پایان مییابد.
<rss version="2.0"> .... </rss>
تنها عنصر فرزند <rss>، <channel> نامیده میشود که دارای 3 عنصر اجباری میباشد. در نظر داشته باشید که <<channel، در حقیقت همان عنصر اصلی است که اطلاعات پایگاه ما را در بر میگیرد. در نرم افزار های گردآورنده خبر(News aggregator) نیز، از هر پایگاه جدید به عنوان یک channel جدید یاد میشود. عناصر <channel> عبارتند از:title،link، description که در جدول زیر موارد استفاده آنها بیان شده است.
عنوان feed که اغلب شامل نام پایگاه اطلاع رسانی میباشد | title |
آدرس پایگاه اطلاع رسانی | link |
توضیحات مربوط به پایگاه اطلاع رسانی | decription |
در مشخصات ارائه شده برای RSS 2. 0 عناصر اختیاری دیگری نیز وجود دارد نظیر:
توضیح | عنصر |
---|---|
زبانی که کانال به آن زبان نوشته شده است.دانستن زبان این امکان را به نرم افزارهای گردآورنده خبر میدهد تا کانال هایی که زبان یکسانی دارند را در یک صفحه نمایش دهد و یا کارکترهای مخصوص آن زبان را لحاظ کند. | language |
نمایش دهنده پدید آورنده کانال | copyright |
آدرس پست الکترونیکی فردی که مسوولیت اخبار و مقالات را بر عهده دارد. | managingEditor |
آدرس پست الکترونیکی فردی که مسوولیت مسائل فنی کانال را بر عهده دارد. | webMaster |
زمانی که کانال به روز میگردد این تاریخ با استفاده از RFC 822 نوشته میشود. | pubDate |
تاریخ آخرین بار مرتبه ای که اطلاعات کانال به روز شده است. این تاریخ تاریخ با استفاده از RFC 822 نوشته میشود. | lastBuildDate |
طبقه بندی محتوایی کانال. اینکه کانال حاوی چه مطالبی میباشد. | category |
بیان کننده نرم افزاری که کانال را تولید کرده است. | generator |
آدرسی که به مستندات نسخه ای از RSS اشاره میکند که در کانال مورد استفاده قرار گرفته است. | docs |
ttl یا Time To Live بیان کننده مدت زمانی است که گردآورنده خبر پس از آن زمان مجددا فایل مربوط به کانال را برای به روز رسانی فایل خود چک کرده و اطلاعات فعلی را "قدیمی" به شمار میآورد. | ttl |
فایلی از نوع GIF , JPEG و یا PNG که به همراه کانال نمایش داده میشود. | image |
PICS rating(Platform for Internet Content Selection) مربوط به کانال | rating |
نمایش دهنده یک Text Box به همراه کانال که میتواند کاربری های متفاوتی داشته باشد از جمله دریافت نظر مشاهده کنندگان کانال. | textInput |
با این عنصر به نرم افزار گردآورنده خبر گفته میشود که در چه ساعاتی کانال مورد نظر را برای اطلاعات جدید چک نکند. | skipHours |
با این عصر به نرمم افزار گردآورنده خبر گفته میشود که در چه روزی کانال مورد نظر را برای اطلاعات جدید چک نکند. | skipDays |
هر اطلاع و یا خبر، داخل یک عنصر <item> قرار گرفته میشود. این عنصر در داخل <channel> قرار داده میشود. در نظر داشته باشید که تعداد عناصر <item> در هر <channel> دلخواه میباشد. به جز یکی از دو عنصر title و یا description، بقیه موارد اختیاری میباشند.
عناصر معمول در <item> شامل موارد زیر میباشند:
عنوان |
title |
آدرس |
link |
توضیحات |
description |
نویسنده |
author |
تاریخ انتشار |
pubDate |
نکته: pubDate از قالب RFC 822 پیروی میکند. 3 حرف معادل روز (اختیاری) سپس ","، تاریخ روز، سپس، 3 حرف به عنوان نماد ماه سپس سال و در انتها ساعت و Time Zone به عنوان مثال Sat, 07 Sep 2002 00:00:01 GMT
<rss version="2.0"> <channel> <title>Latest DataWebControls.com FAQs</title> <link>http://datawebcontrols.com</link> <description> This is the syndication feed for the FAQs at DataWebControls.com </description> <item> <title>Working with the DataGrid</title> <link>http://datawebcontrols.com/faqs/DataGrid.aspx</link> <pubDate>Mon, 07 Jul 2003 21:00:00 GMT</pubDate> </item> <item> <title>Working with the Repeater</title> <description> This article examines how to work with the Repeater control. </description> <link>http://datawebcontrols.com/faqs/Repeater.aspx</link> <pubDate>Tue 08 Jul 2003 12:00:00 GMT</pubDate> </item> </channel> </rss>
در این قسمت شما به عنوان مدیر یک پایگاه اطلاع رسانی هستید که میخواهد بخش RSS اخبار پایگاه خود را در اختیارسایرین ( دیگر پایگاههای اطلاع رسانی و یا خوانندگان خبر از طریق برنامه گردآور خبر(News aggregator) (قرار دهد. پیش از شروع، لازم است که قوانین پایه ای مربوط به xml و RSS 2.0 را مطالعه نماید.حال جدولی از پایگاه داده (Data base) را که میخواهید تغییرات آن را نمایش دهید انتخاب نمایید برای مثال ما در اینجا از جدولی به نام _NEWS استفاده میکنیم که شامل فیلدهای زیر است:
ID
TITLE
LEAD
IMAGE_PATH
DATE
using System; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Text; using System.Web; using System.Xml;آنچه در Page_load لازم داریم:
عملکرد | دستورالعمل |
---|---|
تعریف شئ از نوع xmlWriter این امکان را داریم که یک فایل xml ایجاد کرده و یا اطلاعات آن را به روز نماییم. با استفاده از این شی میتوان Encoding فایل را نیز تعیین کرد. | XmlTextWriter xmlWriter = new XmlTextWriter(Server.MapPath("rss.xml") ,Encoding.UTF8); |
شروع فایل و افزودن مشخصات لازم برای فایل xml نظیر نسخه1.0 برای تگ xml | xmlWriter.WriteStartDocument(); |
افزودن تگ شروع کننده عنصر <rss> به عنوان اولین عنصر در فایل | xmlWriter.WriteStartElement("rss"); |
افزودن مشخصه "نسخه" برای عنصر <rss> | xmlWriter.WriteAttributeString("version","2.0"); |
افزودن تگ شروع کننده عنصر <channel> برای معرفی پایگاه ارائه دهنده RSS | xmlWriter.WriteStartElement("channel"); |
افزودن عنصر <title> به عنوان فرزند <channel> برای نمایش عنوان پایگاه ارائه دهنده RSS. به عنوان مثال mydomain.com نمایان گر این مطلب است که این feed متعلق به سایت mydomain.com میباشد. | xmlWriter.WriteElementString("title", "MyDomain NewsWriter"); |
افزودن عنصر به عنوان فرزند <channel> برای نمایش آدرس پایگاه ارائه دهنده RSS | xmlWriter.WriteElementString("link","http://mydomain.com"); |
افزودن عنصر |
xmlWriter.WriteElementString("description","mycomain.com"); |
افزودن عنصر |
xmlWriter.WriteElementString("copyright","(c) 2004, Mydomain.com. All rights reserved."); |
افزودن عنصر |
xmlWriter.WriteElementString("ttl","25"); |
خواندن رشته حاوی اطلاعات اتصال به پایگاه داده از web.config | SqlConnection sqlCn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]); |
تعریف پرس وجو برای نمایش ردیفهای مورد نظر | string sqlNews = "SELECT TOP 15 ID, LEAD, TITLE, DATE FROM NEWS WHERE STATUS_ID=2 ORDER BY DATE DESC"; |
برقراری اتصال با پایگاه داده و شروع خواندن اطلاعات | sqlCn.Open(); SqlCommand sqlcmdNews = new SqlCommand(sqlNews, sqlCn); SqlDataReader drNews = sqlcmdNews.ExecuteReader(); |
افزودن تگ شروع کننده عنصر <item> و مطالب آن به ازای هر خبر خوانده شده از پایگاه | while (drNews.Read()) { xmlWriter.WriteStartElement("item"); |
افزودن عنصر <title> به عنوان فرزند عنصر <item> به ازای هر خبر خوانده شده از پایگاه که حاوی عنوان خبر خوانده شده میباشد. | xmlWriter.WriteElementString("title",drNews.GetString(drNews.GetOrdinal("TITLE"))); |
افزودن عنصر <description> به عنوان فرزند عنصر <item> به ازای هر خبر خوانده شده از پایگاه که حاوی خلاصه خبر خوانده شده میباشد. | xmlWriter.WriteElementString("description",drNews.GetString(drNews.GetOrdinal("LEAD"))); |
افزودن عنصر <link> به عنوان فرزند عنصر <item> به ازای هر خبر خوانده شده از پایگاه که حاوی آدرس خبر بوده و برای نمایش متن کامل خبر در مرور گر مورد استفاده قرار میگیرد. | xmlWriter.WriteElementString("link", "http://mydomain.com/news.aspx?"+drNews.GetInt32(drNews.GetOrdinal("ID")).ToString()); |
افزودن عنصر <pubDate> به عنوان فرزند عنصر <item> به ازای هر خبر خوانده شده از پایگاه حاوی تاریخ خبر خوانده شده میباشد. این تاریخ باید به صورت استاندارد RTC 822نوشته شده باشد. | xmlWriter.WriteElementString("pubDate",drNews.GetDateTime(drNews.GetOrdinal("DATE")).ToString("R")); |
افزودن تگ پایانی <item/> در پایان هر خبر | xmlWriter.WriteEndElement(); |
افزودن تگ پایانی <channel/> | xmlWriter.WriteEndElement(); |
افزودن تگ پایانی <rss/> | xmlWriter.WriteEndElement(); |
بستن تمامی تگ ها و یا مشخصه ها که بسته نشده اند. | xmlWriter.WriteEndDocument(); |
پایان کار با فایل | xmlWriter.Close(); |
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.IO;
using System.Text;
using System.Configuration;
namespace rss
{
/// <summary>
/// Summary description for createXml.
/// </summary>
public class createXml : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
XmlTextWriter xmlWriter = new XmlTextWriter(Server.
MapPath("rss.xml")
,Encoding.UTF8);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("rss");
xmlWriter.WriteAttributeString("version","2.0");
xmlWriter.WriteStartElement("channel");
xmlWriter.WriteElementString("title", "MyDomain News");
xmlWriter.WriteElementString("link","http://MyDomain.com");
xmlWriter.WriteElementString("description","MyDomain");
xmlWriter.WriteElementString("copyright","(c) 2004,
MyDomain.com. All rights reserved.");
xmlWriter.WriteElementString("ttl","25");
SqlConnection sqlCn = new
SqlConnection(ConfigurationSettings.AppSettings
["ConnectionString"]);
sqlCn.Open();
string sqlNews = "SELECT TOP 15 ID, LEAD,
TITLE, IMAGE_PATH,DATE FROM NEWS WHERE
STATUS_ID=2 ORDER BY DATE
DESC";
SqlCommand sqlcmdNews = new SqlCommand(sqlNews, sqlCn);
SqlDataReader drNews = sqlcmdNews.ExecuteReader();
while (drNews.Read())
{
xmlWriter.WriteStartElement("item");
xmlWriter.WriteElementString("title",drNews.GetString
(drNews.GetOrdinal("TITLE")));
xmlWriter.WriteElementString("description",drNews.GetString
(drNews.GetOrdinal("LEAD")));
xmlWriter.WriteElementString("link",
"http://mydomain.com/news.aspx?"
+drNews.GetInt32(drNews.GetOrdinal("ID")).
ToString()+".html");
xmlWriter.WriteElementString("pubDate",
drNews.GetDateTime(drNews.GetOrdinal("DATE"))
.ToString("R"));
xmlWriter.WriteEndElement();
}
drNews.Close();
sqlCn.Close();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close();
}
}
ساده ترین نوع استفاده از RSS در پایگاه اطلاع رسانی، نمایش آخرین اخبار پایگاههای دیگر میباشد. در این حالت کافی است که محلی برای نمایش اطلاعات پایگاه مورد نشر در نظر بگیرید و بسته به اینکه بخواهید فایل مورد نظر چگونه نمایش داده شود، آن را سفارشی نمایید.
مثال:
برای نمایش اخبار منتشر شده در BBC در پایگاه خود، در ساده ترین حالت، کافی است که یک صفحه .aspx ایجاد نمایید. سپس یک Datagrid در صفحه قرار دهید:
<asp:DataGrid id="dgPost" runat="server" AutoGenerateColumns="False" BorderColor="#DEBA84" BorderStyle="None" CellSpacing="2" BorderWidth="1px" BackColor="#DEBA84" CellPadding="3" dir=rtl> <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#738A9C"></SelectedItemStyle> <ItemStyle ForeColor="#8C4510" BackColor="#FFF7E7"></ItemStyle> <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#A55129"></HeaderStyle> <FooterStyle ForeColor="#8C4510" BackColor="#F7DFB5"></FooterStyle> <Columns> <asp:TemplateColumn HeaderText="title"> <ItemTemplate> <a href=<%# DataBinder.Eval(Container, "DataItem.link") %>><%# DataBinder.Eval(Container, "DataItem.title") %> </a> </ItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="description" HeaderText="Description"></asp:BoundColumn> </Columns> <PagerStyle HorizontalAlign="Center" ForeColor="#8C4510" Mode="NumericPages"></PagerStyle> </asp:DataGrid>
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Xml; namespace rss { /// <summary> /// Summary description for WebForm1. /// </summary> public class WebForm1 : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid dgPost; private void Page_Load(object sender, System.EventArgs e) { dgPost.DataSource=GetRss("http://www.bbc.co.uk/syndication/feeds/news/ukfs_news/world/rss091.xml"); dgPost.DataBind(); } public DataTable GetRss(string str) { XmlTextReader xmlr = new XmlTextReader(str); DataSet ds = new DataSet(); ds.ReadXml(xmlr); return ds.Tables[2]; }
همانطور که مشخص استDatagrid تعریف شده، برای نمایش عنوان و توضیح خبر مورد استفاده قرار میگیرد. این ساده ترین حالت ممکن برای استفاده از xml پایگاههای دیگر میباشد.
در این حالت میتوان به شی "XmlTextReader"، نشانی فایل مورد نظر را ارسال کرد. سپس فایل را از طریق متد ReadXml در DataSet قرار داد. نکته مهم این است که در هنگام خواندن xml ، DataSet به ازای هر سطح از xml یک DataTable ایجاد میکند. بنابراین عناصر <rss> و <channel> هرکدام به عنوان یک جدول در DataSet شناخته خواهند شد. میتوان نتیجه گرفت که برای نمایش اطلاعات <channel> (شامل زبان ، ttl ، copyright و ...) کافی است که اطلاعات جدول شماره 1 یا [ ds.Tables[1 را استخراج نمایید.
با استفاده از روش بالا میتوان اطلاعات را به درستی نمایش داد. اما استفاده از UserControl این امکان را میدهد که بتوانیم بدون تغییر محسوس در صفحات، کدی ایجاد نماییم که هم قابلیت استفاده مجدد ( بدون تکرار کردن کد ) را داشته باشد و هم تغییر و کنترل آن ساده و از یک فایل، برای تمامی صفحات باشد. برای اینکار ابتدا با استفاده از Visual Studio فایلی با عنوان rssFeed.ascx میسازیم و مجددا روند ذکر شده در روش قبل را تکرار میکنیم.
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="RssFeed.ascx.cs" Inherits="rss.RssFeed" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%> <asp:DataGrid id="dgPost" runat="server" AutoGenerateColumns="False" BorderColor="#DEBA84" BorderStyle="None" CellSpacing="2" BorderWidth="1px" BackColor="#DEBA84" CellPadding="3" dir=rtl> <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#738A9C"></SelectedItemStyle> <ItemStyle ForeColor="#8C4510" BackColor="#FFF7E7"></ItemStyle> <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#A55129"></HeaderStyle> <FooterStyle ForeColor="#8C4510" BackColor="#F7DFB5"></FooterStyle> <Columns> <asp:TemplateColumn HeaderText="title"> <ItemTemplate> <a href=<%# DataBinder.Eval(Container, "DataItem.link") %>><%# DataBinder.Eval(Container, "DataItem.title") %> </a> </ItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="description" HeaderText="Description"></asp:BoundColumn> </Columns> <PagerStyle HorizontalAlign="Center" ForeColor="#8C4510" Mode="NumericPages"></PagerStyle> </asp:DataGrid>
namespace rss { using System; using System.Data; using System.Drawing; using System.Web; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Xml; /// <summary> /// Summary description for RssFeed. /// </summary> public class RssFeed : System.Web.UI.UserControl { private void Page_Load(object sender, System.EventArgs e) { dgPost.DataSource=GetRss("http:/mydomain.com/rss.xml"); dgPost.DataBind(); } public DataTable GetRss(string str) { XmlTextReader xmlr = new XmlTextReader(str); DataSet ds = new DataSet(); ds.ReadXml(xmlr); return ds.Tables[2]; } } }
نکته مهم در مورد UserControl نحوه استفاده از این فایل میباشد. برای استفاده از UserControl در صفحات دیگر، احتیاج به معرفی Usercontrol ایجاد شده داریم که از طریق کد زیر قابل انجام میباشد.
<%@ Register TagPrefix="rss" TagName="rssFeed" Src="ssFeed.ascx" %>
با استفاده از این کد میتوان کنترل جدید را در هر صفحه .aspx که میخواهید از آن استفاده کنید، معرفی نمایید. به عنوان مثال:
<%@ Register TagPrefix="rss" TagName="rssFeed" Src="rssFeed.ascx" %>
<%@ Page language="c#" Codebehind="View.aspx.cs" AutoEventWireup="false" Inherits="rss.WebForm1" %>
<HTML>
<HEAD>
</HEAD>
<body MS_POSITIONING="GridLayout">
<TABLE height="163" cellSpacing="0" cellPadding="0" border="0" ms_2d_layout="TRUE">
<TR vAlign="top">
<TD width="57" height="163">
<form id="frm" method="post" runat="server">
<TABLE height="40" cellSpacing="0" cellPadding="0" border="0" ms_2d_layout="TRUE">
<TR vAlign="top">
<TD width="10" height="15"></TD>
<TD width="141"></TD>
</TR>
<TR vAlign="top">
<TD height="25"></TD>
<TD>
<rss:rssFeed id="ucRssFeed" runat="Server" /></TD>
</TR>
</TABLE>
</form>
</TD>
</TR>
</TABLE>
</body>
</HTML>
مطمئنا در هنگام نمایش اطلاعات سایرین در پایگاه خود، بهتر است که به ازای هر بار، بارگذاری صفحه، به پایگاه ارائه دهنده RSS مراجعه نکنیم. بلکه در یک مدت زمان مشخص تغییر اطلاعات را چک نماییم. یکی از ساده ترین روشها Cache کردن اطلاعات RSS برای یک مدت زمان دلخواه میباشد تا هر زمان که این بازه زمانی به پایان میرسد بتوانیم اطلاعات Feed را از پایگاه ارائه دهنده مجددا بخوانیم. برای این کار میتوانیم به صورت زیر عمل نماییم:
<%@ Register TagPrefix="rss" TagName="rssFeed" Src="rssFeed.ascx" %> <%@ Page language="c#" Codebehind="View.aspx.cs" AutoEventWireup="false" Inherits="rss.WebForm1" %> <HTML> <HEAD> </HEAD> <body MS_POSITIONING="GridLayout"> <TABLE height="163" cellSpacing="0" cellPadding="0" border="0" ms_2d_layout="TRUE"> <TR vAlign="top"> <TD height="163"> <form id="frm" method="post" runat="server"> <TABLE height="40" cellSpacing="0" cellPadding="0" border="0" ms_2d_layout="TRUE"> <TR vAlign="top"> <TD height="15"></TD> <TD "></TD> </TR> <TR vAlign="top"> <TD height="25"></TD> <TD> <rss:rssFeed id="ucRssFeed" runat="Server" /></TD> </TR> </TABLE> </form> </TD> </TR> </TABLE> </body> </HTML>
6,288بازدید
دیدگاه کاربران
هنوز دیدگاهی ثبت نشده است.
شما میتوانید درباره این مقاله، دیدگاه خود را ثبت کنید.