نمایش نتایج 1 تا 16 از 16

نام تاپیک: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

  1. #1
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    34
    پست
    661

    ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    سلام دوستان عزیز.


    به صورت دینامیک برای سایت XML sitemap میسازم(یعنی اطلاعات صفحات سایت رو از دیتابیس دریافت میکنم و بعد سایت مپ رو میسازم).
    ولی چون تعداد صفحات سایت زیاده(بالای 10 هزار صفحه)، سایت مپ نشون داده نمیشه و مشکل دار میشه.


    چطور میشه این مشکل رو بصورت دینامیک حل کرد؟ که با افزایش تعداد صفحات مجددا این مشکل پیش نیاد.
    (ایجاد چند سایت مپ و تقسیم دیتاها به صورت دستی امکان پذیر نیست!)


    تشکر

  2. #2
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    34
    پست
    661

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    کسی نظری نداره؟؟

  3. #3
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    وقتی تعداد صفحات زیاد میشه باید تعداد Site Map هاتون هم چند تا شه



  4. #4
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    34
    پست
    661

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    نقل قول نوشته شده توسط ahmad156 مشاهده تاپیک
    وقتی تعداد صفحات زیاد میشه باید تعداد Site Map هاتون هم چند تا شه
    درست. ولی چطور بصورت داینامیک وقتی صفحات زیاد میشن سایت مپ جدید بسازم؟
    برای یکی از پروژه ها بصورت دستی 4 تا سایت مپ ساخته بودم و مثلا گفته بودم صفحات 1 تا 4هزار رو توی اولی بیار، 4001 تا 5هزار رو توی دومی و....
    اما نمیخوام اینجوری باشه. باید راهی باشه که بشه خودکار بسازه.
    تشکر

  5. #5
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    این روش منه.دیگه فکر کنم راحت باشه تغییرش

    public string changefreq = "hourly";
    public string priority = "0.9";
    protected void Page_Load(object sender, EventArgs e)
    {
    using (var writer = new XmlTextWriter(Server.MapPath("/sitemap.xml"), null))
    {
    writer.WriteStartDocument();
    writer.WriteStartElement("urlset");
    writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
    var data = yourDataFromDataBase();
    foreach (DataRow row in data.Rows)
    {
    string Loc = yourUrl
    writer.WriteStartElement("url");
    writer.WriteElementString("loc", Loc);
    writer.WriteElementString("changefreq", changefreq);
    writer.WriteElementString("priority", priority);
    writer.WriteEndElement();
    }
    writer.WriteEndDocument();
    writer.Flush();
    }
    }



  6. #6

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    خوب یک سئوال : برای سایت هایی که روزانه مقالات و اخبار در سایت قرار می دن چطور باید sitemap را مدیریت کرد؟ منظورم اینه که به ازای هر خبر یا مقاله جدید باید یک node در فایل xml ایجاد کنیم ؟ اگه آره مثلا بعد از یک مدت که تعدا node ها سر به فلک می کشه !!!!!!!!!!!!!!!!!!!
    البته می شه یک سناریو دیگه هم در نظر گرفت و اون هم اینکه لینک هایی که برای ما مهم هستن مثلا محصولات شرکت را فقط در sitemap قرار داد تا گوگل فقط اونها رو به عنوان لینک های مهم شناسایی کنه ؟

  7. #7
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    34
    پست
    661

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    نقل قول نوشته شده توسط ahmad156 مشاهده تاپیک
    این روش منه.دیگه فکر کنم راحت باشه تغییرش
    خوب این که روش ساخت سایت مپه. من خودم همین رو استفاده کردم. من میگم فرض کنید این دیتایی که از دیتابیس گرفتید، 10,000 رکورد رو برگردونه. توی سایت مپ میگن باید حداکثر 5هزار تا رکورد باشه. من میگم همین 10 هزارتایی رو که از دیتابیس گرفتید رو چطور بین چند تا فایل تقیسم کنیم؟(بصورت دینامیک. نه اینکه فایل sitemap1 و sitemap2 روی هاست باشه.)
    گرفتید چی میگم؟

  8. #8
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    34
    پست
    661

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    نقل قول نوشته شده توسط ali_mnkt مشاهده تاپیک
    بعد از یک مدت که تعدا node ها سر به فلک می کشه !!!!!!!!!!!!!!!!!!!
    منم حرفم همینه.

  9. #9
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    نقل قول نوشته شده توسط moslem.hady مشاهده تاپیک
    بصورت دینامیک. نه اینکه فایل sitemap1 و sitemap2 روی هاست باشه.
    دوست عزیز شما باید در قالب چند تا SiteMap این کار رو بکنین.اینجا رو ببینین



  10. #10
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    34
    پست
    661

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    نقل قول نوشته شده توسط ahmad156 مشاهده تاپیک
    دوست عزیز شما باید در قالب چند تا SiteMap این کار رو بکنین.اینجا رو ببینین
    درسته. منم الان مثلا برای صفحات یه سایت مپ دارم، برای محصولات یکی، برای مقالات یکی و...
    اما مثلا سایت مپ مقالات بزرگ میشه و میخوام داینامیک تقسیم بشه.
    اگه سایت مال خودم باشه که هردفه بهش اضافه میکنم. ولی برای سایت مشتری که نمیشه هردفه این کار رو کرد چی؟

  11. #11
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    میتونی به ازای هر Insert ، فایل SiteMap رو بگیرین و در انتهای اون رکورد جدید رو درج کنین



  12. #12
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    34
    پست
    661

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    نقل قول نوشته شده توسط ahmad156 مشاهده تاپیک
    میتونی به ازای هر Insert ، فایل SiteMap رو بگیرین و در انتهای اون رکورد جدید رو درج کنین
    فکر میکنم شما منظور من رو متوجه نشدین.
    اولا که روشی که من استفاده میکنم برای سایت مپ مثل روش شما روی یه فایل xml نمی نویسه. بلکه یه صفحه aspx دارم که توی لودش گفتم دیتاها رو بگیره و write کنه:
    http://nafisfile.com/sitemap.aspx

    حالا حرف من اینه که چطور به صورت دینامیک لینک ها رو تقسیم کنم که توی سایت مپ ها بیشتر از 5000 تا لینک نباشه. (ساخت فایل سایت مپ دینامیک باشه. نه خوندن از دیتابیس)

  13. #13
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    اولا که روشی که من استفاده میکنم برای سایت مپ مثل روش شما روی یه فایل xml نمی نویسه. بلکه یه صفحه aspx دارم که توی لودش گفتم دیتاها رو بگیره و write کنه
    دقیقاً من هم همین کار رو میکنم.
    خب شما میتونین چک کنین توی حلقه for که اگر بیشتر از 5000 تا بود فایل جدید ایجاد کنه یا حتی برای update هم میتونین تعداد نود ها رو بشمرین که اگر بیشتر از 5000 تا بود فایل جدید رو ایجاد کنه



  14. #14
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    34
    پست
    661

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    نقل قول نوشته شده توسط ahmad156 مشاهده تاپیک
    دقیقاً من هم همین کار رو میکنم.
    خب شما میتونین چک کنین توی حلقه for که اگر بیشتر از 5000 تا بود فایل جدید ایجاد کنه یا حتی برای update هم میتونین تعداد نود ها رو بشمرین که اگر بیشتر از 5000 تا بود فایل جدید رو ایجاد کنه
    یه چیزی الان به ذهن خودم رسید:
    اولا که با این روش فراخوانی و نمایش در هنگام درخواست نمیشه انجام داد. و باید فایل xml داشته باشیم و مثلا در هنگام درج صفحه یا محصول جدید به فایل xml اضافه کنیم.
    الگوریتم اینجوری میشه:
    وقتی یه صفحه جدید ایجاد میشه:
    (توجه کنید که کد زیر شبه کده و ممکنه یه اشتباهاتی داشته باشه.)
    int linkcount = تعداد رکوردهایی که میخوان توی سایت مپ اضافه بشن;
    int cnt= (int)linkcount/5000;// رند شده تعداد سایت مپ هایی که میشه ایجاد بشه.
    // برای هرکدوم از سایت مپ ها 5000 لینک درنظر میگیریم.


    for(int i=1; i<= cnt; i++)
    {
    string sitemap= "sitemap"+ i +".xml";


    //اگر فایل سایت مپ اولی موجود باشه، لینک رو بهش اضافه میکنیم.
    //وگرنه اول اون رو میسازی و بعد بهش لینک رو اضافه می کنیم.
    if(File.Exist(sitemap))
    { کدهای اضافه کردن رکود به سایت مپ ;}
    else
    {
    // فایل سایت مپ رو بسازیم.
    File.Create(sitemap);
    کدهای اضافه کردن رکود به سایت مپ ;
    }
    }

  15. #15

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    ممنون مفید بود
    منم یه مشکلی دارم که وقتی تاریخ رو از سرور فرا میخونه و درج میکنه گوگل ایراد میگیره

    اینجا

  16. #16
    کاربر دائمی آواتار moslem.hady
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    پشت میز کامپیوتر
    سن
    34
    پست
    661

    نقل قول: ساخت سایت مپ دینامیک برای حجم زیاد صفحات

    حالا که این پست بالا اومد، روشی که خودم انجام دادم رو مینویسم:
    یه صحفه داریم به اسم sitemap.aspx که توی پیج لود اون، این کد ها نوشته میشه (کامنت در کدها هست)



    protected void Page_Load(object sender, EventArgs e)
    {
    /*
    آدرس های سایت مپ رو با روتینگ به این صورت میکنیم:
    site.com/sitemap1.xml
    site.com/sitemap2.xml
    site.com/sitemap3.xml


    که روتینگ آن به این صورت میشه:
    routes.MapPageRoute(
    "sitemap-Rout",
    "sitemap{id}.xml",
    "~/sitemap.aspx"
    );


    */
    Response.Clear();
    Response.ContentType = "text/xml";
    using (XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8))
    {
    int selectCount = 20000; // تعداد ردیف های سایت مپ
    int skip = 0;
    int pagenum = 0;


    int.TryParse(RouteData.Values["id"] as string, out pagenum);// گرفتن صفحه سایت مپ از آدرس.


    if (pagenum == 0)
    return;


    skip = (pagenum-1) * selectCount;//تعداد رکورهایی که حذف میشن از کوئری


    string Home = "http://site.com/";



    //شروع شی XML
    writer.WriteStartDocument();
    writer.WriteStartElement("urlset");
    writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");

    using (DataAccessDataContext _data = new DataAccessDataContext())
    {
    //گرفتن تعداد مورد نظر از محصولات و اسکیپ کردن بر اساس صفحه.
    foreach (Product item in _data.Products.OrderBy(a => a.ID).Skip(skip).Take(selectCount))
    {
    writer.WriteStartElement("url");
    writer.WriteElementString("loc", Home + "product/"+item.ID);
    writer.WriteElementString("changefreq", "daily");
    writer.WriteElementString("priority", "1");
    writer.WriteEndElement();
    }


    }




    //پایان شی XML
    writer.WriteEndDocument();
    writer.Flush();
    }
    Response.End();
    }

تاپیک های مشابه

  1. سوال: راهنمایی برای ساخت سایت بازاریابی و تجاری
    نوشته شده توسط fa_karoon در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: پنج شنبه 29 بهمن 1388, 00:13 صبح
  2. حجم زیاد متن برای گزارش
    نوشته شده توسط S_O_S1982 در بخش ابزارهای گزارشگیری در VB6
    پاسخ: 3
    آخرین پست: سه شنبه 26 آبان 1388, 15:44 عصر
  3. مشکل در حجم زیاد بانک برای ذخیره عکس
    نوشته شده توسط aradsystem در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 25
    آخرین پست: چهارشنبه 21 آذر 1386, 22:36 عصر
  4. ساخت سایت های دینامیک
    نوشته شده توسط ALIreza_nil در بخش PHP
    پاسخ: 2
    آخرین پست: دوشنبه 03 اسفند 1383, 03:56 صبح
  5. مشکل حجم زیاد فایل در Ado و مدت زمان زیاد برای باز شدن فایل
    نوشته شده توسط nasr در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: یک شنبه 23 آذر 1382, 18:14 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •