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

eAmin

Well-Known Member
سلام.

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

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

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

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

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

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

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

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

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

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

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

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

و الان باید کد کامل شده ی شما این باشه:
کد:
var links = document.getElementsByTagName("a");
for (var i=0; i<links.length; i++) {
        links[i].removeAttribute("href");
}

شما باید این قطعه کد رو در ویداد load صفحه قرار بدید. کد زیر:
کد:
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 رو هم باید به همون آدرس راهنمایی کنیم تا برای موتورهای جستوجو ایرادی نداشته و اگر جاوااسکریپت مرورگر غیر فعال بود باز هم بتونیم به اون صفحه دسترسی داشته باشیم.

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

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

موفق باشید...
 
آخرین ویرایش:

firebird

Member
به این تکنیک اصطلاحاً میگن "جاوااسکریپت نامرئی" و رویکرد نسبتاً جدیدی هم هست. البته شما نیازی به removeAttribute نداری. میتونی تو تابع ()ajax از return false استفاده کنی.
 
آخرین ویرایش:

alionline1366

Active Member
ممنون دوست من این روش روش بسیار جالبی هست و جدیدا در خیلی از کارها انجامش میدن
 

ali-k

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

فقط همانطور که دوستمان در بالا گفتند کافیه return false; بعد از تابع بزارید :)
HTML:
onclick="ajax('page.aspx');return false;"
البته این return false; باید بعد از تابع باشه نه قبلش چون اگر قبلش بزارید هیچ اتفاقی نخواهد افتاد :)
 

eAmin

Well-Known Member
نیاز به اون کد جاوا که نوشتید نبود در عین حالا وقتی صفحه تعداد لینک هاش زیاد باشه اون کد باعث میشه یه اتقاق بسیار بسیار کند روی مرورگر هر بازدید کننده بیوفته ...

فقط همانطور که دوستمان در بالا گفتند کافیه return false; بعد از تابع بزارید :)
HTML:
onclick="ajax('page.aspx');return false;"
البته این return false; باید بعد از تابع باشه نه قبلش چون اگر قبلش بزارید هیچ اتفاقی نخواهد افتاد :)

سلام.

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

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

در هر صورت ممنون...:wink:
 

1p30

Member
نمیشه اصلا یه ایف گزاشت که اگه به هر دلیلی کندی سرعت یا اینکه مرورگر جاوا اسکریپ رو فعال نداشته باشه بره اصلا یه جایی دیگه مثلا یه صفحه دیگه لود بشه
با پی اچ پی نمیشه ؟! :d
تو جی میل چنین چیزی من دیدم
 

eAmin

Well-Known Member
با جاوا اسکریپت می تونید اینکار رو انجام بدید.
 
آخرین ویرایش:

1p30

Member
من اینطوری که فهمیدم جی میل با جاوا نوشته شده
تو پی اچ پی من چیزی ندیدم اگه کسی می دونه بگه
 

imanmir

Member
سلام

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

جدیدترین ارسال ها

بالا