ایندکس شدن تمای صفحات سایت در موتورهای جستوجو

شروع موضوع توسط eAmin ‏13 مارس 2008 در انجمن برنامه‌نویسی با جاوااسکریپت (JavaScript)

  1. eAmin

    eAmin Well-Known Member

    ارسال‌ها:
    944
    تشکر شده:
    845
    امتیاز دستاورد:
    93
    سلام.

    خیلی از سایتهایی که امروز ساخته می شه، برای اینکه به قولی مدرن باشه! از تکنولوژی ای جکس استفاده می کنن که اون هم به درستی ازش استفاده نمی کنن و می خوان که بگن: ما هم بله... و اگر بگید سایت شما یه ایراداتی داره که باید بر طرف شه خیلی زود ناراحت می شن.

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

    من دوتا از این اصول رو می گم:

    1.ایندکس شدن تمامی صفحات سایت در موتورهای جستوجو.
    2.در صورت غیر فعال بودن Javascript بتوان به تمامی قسمتهای سایت دسترسی داشت.

    البته لازم به ذکر هست که این موردها رو با PHP می شه به راحتی حل کرد و من از طریق دوست خوبم: مسعود (my freind ) با خبر شدم، که هر کجا هست بهش سلام عرض می کنم.

    ادامه ی مطلب...

    توی این روش از Javascript استفاده شده که خیلی ساده و روان هست.
    این روش رو من یک شب فکر کردم ببینم آیا می شه با جاوا اسکریپت چنین کاری کرد یا نه، بعدا فهمیدم که ساده تر از اون چیزی بود که من فکرش رو می کردم!

    بهتره بریم قسمت کد نویسی:

    اول من یک مقدار تعریف کردم که راحت تر بشه بهش دسترسی داشت، کد زیر:
    کد (Text):

    var links = document.getElementsByTagName("a");
     
    این قطعه کد با استفاده از DOM تگ Anchor یعنی همون a رو پیدا می کنیم.

    تا اینجای کار که فکر نکنم مشکلی باشه.

    حالا ما باید یه حلقه بنویسیم که هرچی تگ a توی صفحه بود رو بگرد و پیدا کن یا در نظر بگیر... برای اینکار ما از حلقه ی for استفاده می کنیم.
    کد (Text):
    for (var i=0; i<links.length; i++)
    اگر یکمی با جاوا اسکریپت آشنا باشید و یا بازبانهای دیگه کار کرده باشید همه چیز توی دستتون می یاد.

    حالا باید درون این حلقه کد زیر رو بنویسیم:
    کد (Text):
    links[i].removeAttribute("href");
    در این قسمت مقدار links رو به صورت آرایه وار در میاره تا هرچی تگ a رو در بر بگیره و با استفاده از تابع removeAttribute خصیصه ی href رو از همه ی تگهای a حذف می کنه!

    و الان باید کد کامل شده ی شما این باشه:
    کد (Text):
    var links = document.getElementsByTagName("a");
    for (var i=0; i<links.length; i++) {
            links[i].removeAttribute("href");
    }
     
    شما باید این قطعه کد رو در ویداد load صفحه قرار بدید. کد زیر:
    کد (Text):
    window.onload = function() {
    کد بالا رو قرار بدید.
    {
     
    این قسمت تموم شد و حالا می رسه نوبت به تگهای html.

    HTML:
    <a href="page.aspx" onclick="ajax('page.aspx')">Go to page.aspx</a>
    خب چرا باید آدرس href با آدرسی که در رویداد onclick نوشتیم یکی باشه؟
    به خاطر اینکه اگر زمانی جاوااسکریپت مرورگر غیر فعال بود بدون هیچ مشکلی بشه به صفحه ی مورد نظر دسترسی داشت.

    بزارید یک توضیح کامل کننده ی در این باره بدم.
    ما در تگ a از دوخصیصه href و onclick استفاده می کنیم که در رویداد onclick با تابع ای جکسی که تعریف کردیم آدرس صفحه ی مورد نظر رو می دیم و خصیصه ی href رو هم باید به همون آدرس راهنمایی کنیم تا برای موتورهای جستوجو ایرادی نداشته و اگر جاوااسکریپت مرورگر غیر فعال بود باز هم بتونیم به اون صفحه دسترسی داشته باشیم.

    به نظر من که خیلی ساده بود!

    به امید روزی که همه ی ما اگر از یک تکنولوژی استفاده می کنیم، سعی کنیم اول اصول اولیه اون رو یاد بگیریم.

    موفق باشید...
     
    آخرین ویرایش: ‏13 مارس 2008
    نوشته شده توسط eAmin در ‏13 مارس 2008
    foranyone، amirds، echessdesign و 5 نفر دیگر از این ارسال تشکر کرده اند.
  2. firebird

    firebird Member

    ارسال‌ها:
    147
    تشکر شده:
    65
    امتیاز دستاورد:
    16
    به این تکنیک اصطلاحاً میگن "جاوااسکریپت نامرئی" و رویکرد نسبتاً جدیدی هم هست. البته شما نیازی به removeAttribute نداری. میتونی تو تابع ()ajax از return false استفاده کنی.
     
    آخرین ویرایش: ‏14 مارس 2008
    نوشته شده توسط firebird در ‏14 مارس 2008
    eAmin از این پست تشکر کرده است.
  3. alionline1366

    alionline1366 Active Member

    ارسال‌ها:
    3,028
    تشکر شده:
    2,697
    امتیاز دستاورد:
    36
    ممنون دوست من این روش روش بسیار جالبی هست و جدیدا در خیلی از کارها انجامش میدن
     
    نوشته شده توسط alionline1366 در ‏14 مارس 2008
    eAmin از این پست تشکر کرده است.
  4. mohseni12345

    mohseni12345 Member

    ارسال‌ها:
    325
    تشکر شده:
    164
    امتیاز دستاورد:
    16
    کد (Text):
     onclick="return false;ajax('page.aspx');"
     
    نوشته شده توسط mohseni12345 در ‏15 مارس 2008
    amirds و eAmin از این پست تشکر کرده اند.
  5. ali-k

    ali-k Member

    ارسال‌ها:
    50
    تشکر شده:
    8
    امتیاز دستاورد:
    6
    نیاز به اون کد جاوا که نوشتید نبود در عین حالا وقتی صفحه تعداد لینک هاش زیاد باشه اون کد باعث میشه یه اتقاق بسیار بسیار کند روی مرورگر هر بازدید کننده بیوفته ...

    فقط همانطور که دوستمان در بالا گفتند کافیه return false; بعد از تابع بزارید :)
    HTML:

    onclick="ajax('page.aspx');return false;"
     
    البته این return false; باید بعد از تابع باشه نه قبلش چون اگر قبلش بزارید هیچ اتفاقی نخواهد افتاد :)
     
    نوشته شده توسط ali-k در ‏23 مارس 2008
  6. eAmin

    eAmin Well-Known Member

    ارسال‌ها:
    944
    تشکر شده:
    845
    امتیاز دستاورد:
    93
    سلام.

    بله شما درست می گید، من هم متوجه شدم. ولی خب بالاخره این هم یه راهشه ولی از نوع سخت ترش!

    در اون مورد که شما می گید اگر تعداد لینکها زیادشه، اگر توی جاوااسکریپت خلاقیت داشته باشید به راحتی می تونید این مشکل رو بر طرف کنید یعنی واسه ی تعداد معینی لینک اینکار رو انجام بدید.

    در هر صورت ممنون...:wink:
     
    نوشته شده توسط eAmin در ‏24 مارس 2008
  7. firebird

    firebird Member

    ارسال‌ها:
    147
    تشکر شده:
    65
    امتیاز دستاورد:
    16
    نوشته شده توسط firebird در ‏24 مارس 2008
    amirds از این پست تشکر کرده است.
  8. 1p30

    1p30 Member

    ارسال‌ها:
    724
    تشکر شده:
    244
    امتیاز دستاورد:
    16
    نمیشه اصلا یه ایف گزاشت که اگه به هر دلیلی کندی سرعت یا اینکه مرورگر جاوا اسکریپ رو فعال نداشته باشه بره اصلا یه جایی دیگه مثلا یه صفحه دیگه لود بشه
    با پی اچ پی نمیشه ؟! :d
    تو جی میل چنین چیزی من دیدم
     
    نوشته شده توسط 1p30 در ‏29 مارس 2008
  9. eAmin

    eAmin Well-Known Member

    ارسال‌ها:
    944
    تشکر شده:
    845
    امتیاز دستاورد:
    93
    با جاوا اسکریپت می تونید اینکار رو انجام بدید.
     
    آخرین ویرایش: ‏1 ژانویه 2011
    نوشته شده توسط eAmin در ‏30 مارس 2008
  10. 1p30

    1p30 Member

    ارسال‌ها:
    724
    تشکر شده:
    244
    امتیاز دستاورد:
    16
    من اینطوری که فهمیدم جی میل با جاوا نوشته شده
    تو پی اچ پی من چیزی ندیدم اگه کسی می دونه بگه
     
    نوشته شده توسط 1p30 در ‏30 مارس 2008
  11. imanmir

    imanmir Member

    ارسال‌ها:
    573
    تشکر شده:
    51
    امتیاز دستاورد:
    16
    سلام

    شما راه حلتون را لطفا بگید؟
    بابت نوشتن درست ای جکس بسیار ممنون
    لطفا یک سایت ای جکسی که اندیکس بشه معرفی کنی
    به جز gmail
    مرسی؟!
     
    نوشته شده توسط imanmir در ‏8 آوریل 2008

به اشتراک بگذارید