تخمین مدت زمان مطالعه‌ی مطلب: دو دقیقه

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

چند روز پیش شروع به بررسی SEO در AngularJS 1.x کردم. صورت مسئله‌ی من به این صورت بود که نام تعدادی شهر را با AngularJS در صفحه Render کنم، طوریکه در DOM اولیه که از سرور هدایت می‌شود، نام شهرها موجود نباشند. کد زیر را مشاهده کنید.

<html dir="rtl">
<head>
    <title>وب سایت</title>
    <script src="angular.min.js">
    </script>
</head>
<body ng-app="app">
    <ul ng-controller="ctrl">
        <li ng-repeat="item in list">{{item}}</li>
    </ul>
</body>
    <script>
        var app=angular.module('app',[]);
        app.controller('ctrl',function($scope,$timeout){
            $scope.list=[
                'اردبیل',
                'تهران',
                'شیراز',
                'قزوین',
            ]
        });
    </script>
</html>

این فایل را به صورت آزمایشی در Host خودم آپلود کردم؛ با مسیر.

سپس در وب مستر گوگل، مسیر را تعریف کردم و به crawl گوگل اعلام کردم که این مسیر را index کند. بعد از مدتی متوجه شدم این صفحه با تمام نام‌های شهر‌ها index شده‌اند!

مسئله را سخت‌تر کردم و این بار به صورت مسئله اولیه این مورد را هم اضافه کردم که بعد از اینکه صفحه بارگذاری شد، بعد از 5 ثانیه، نام شهر مشهد هم به لیست DOM‌ها اضافه شود و به کد بالا این کد را هم اضافه کردم (این کار را برای شبیه سازی درخواست AJAX انجام دادم):

$timeout(function(){
     $scope.list.push('مشهد')
},5000);

بعد از مدت کوتاهی متوجه شدم نام شهر مشهد هم در گوگل index شده است.این لینک را مشاهده کنید.

البته نیاز به بررسی دقیقتر این مسئله هست و باید در پروژه‌های واقعی این مورد را بررسی کرد تا safe بودن این قابلیت گوگل مورد تایید قرار بگیرد. در حال حاضر برای SEO در ReactJS و AngualrJS و VueJS از Render سمت Server استفاده میکنم. اگر این قابلیت به طور 100% جوابگوی SEO باشد، دیگر نیازی نیست Developer‌ها سمت سرور و کلاینت، کارهای تکراری برای SEO انجام دهند. 

یکی از بهترین منابع یادگیری و ارجاع برای یادگیری جاوا اسکریپ سایت وابسته به تیم مرورگر Mozilla Firefox هست که به MDN نام گذاری شده است.

در شبکه برنامه نویسان موزیلا (MDN) اطلاعات به روز مربوط به برنامه نویسی در لایه UI یافت میشود.

امروزه در اکثر مرورگرها جاوا اسکریپت نصب شده و به صورت پیش فرض فعال است. با توجه به اینکه مجرمان اینترنتی از طریق بارگذاری جاوا اسکریپت های مخرب در وب سایت‌ها در تلاش برای پیدا کردن قربانی و بدست آوردن اطلاعاتی از بازدید کنندگان سایت هستند، توصیه می‌شود جاوا اسکریپت را در مرورگرتان غیر فعال کنید و خودتان تصمیم بگیرید فایل‌های جاوا اسکریپت کدام سایت در مرورگر شما اجرا شود. در نظر داشته باشید که اکثر وب‌سایت‌ها به جاوا اسکریپت وابسته هستند و اگر شما جاوا اسکریپت را در مرورگرتان غیر فعال کرده باشید به صورت کامل کار نخواهند کرد.

  • Java Script يک زبان برنامه نويسی اسکريپتی است . دستور العمل های زبان های اسکريپتی ، در کامپيوتر کاربر و توسط مرورگر اجرا شده و برای اجرا نيازی به برنامه کمکی خاصی ندارند . به اين زبان ها در اصطلاح طرف مشتری ( Client Side ) می گويند . در مقابل زبان های مثل ASP.NET ابتدا توسط سرور ارسال کننده وب اجرا شده و سپس نتايج خروجی به زبان HTML برای اجرا در مرورگر فرستاده می شود . به اين زبان ها در اصطلاح طرف سرور ( Server Side ) می گويند .
  • زبان های اسکريپتی ، جزء زبان های برنامه نويسی سبک هستند . اين زبان ها در هنگام اجرا فازی به نام کامپايل* را طی نکرده و دستورات آن ها به صورت خط به خط اجرا می شوند .

کامپايل : برنامه های نوشته شده به زبان های برنامه نويسی مثل VB , C یا #C در هنگام اجرا ابتدا توسط کامپايلر به طور کامل خوانده شده و اشکال زدايي می شوند و در صورت عدم وجود اشکال ، اجرا خواهند شد . اما برنامه های نوشته شده به زبان های اسکريپتی ، به صورت خط به خط توسط مرورگر خوانده شده و اجرا می شوند .

برخی از امکانات Java Script :

  • Java Script به طراحان وب ، يک ابزار برنامه نويسی ساده و کارا می دهد .
  • Java Script به رويدادهای مختلف در صفحه واکنش نشان می دهد . برای مثال می توان يک تابع Java Script تعريف کرده تا در هنگام وقوع يک رويداد مثل کليک بر روی يک دکمه يا لود شدن صفحه ، اجرا شود .
  • Java Script می تواند اطلاعات ارسالی يک فرم را اعتبار سنجی و کنترل نموده و در صورت صحيح بود ، آنها را به سرور ارسال کند . اين کار باعث جلوگيری از ورود اطلاعات نادرست به سرور و کاهش ترافيک آن می شود .
  • Java Script توانايي تشخيص نوع و نسخه مرورگر مورد استفاده کاربر را داشته و می تواند بر حسب آن نوع مرورگر خاص ، تنطيمات و صفحات ويژه ای را بارگذاری نمايد .
  • Java Script توانايي خواندن و نوشتن اطلاعات مورد نياز مرورگر را بر روی کامپيوتر بازديد کننده صفحه را داراست ، که در اصطلاح به اين کار ايجاد و خواندن Cookie می گويند .
  • Java Script می تواند انواع کادرهای اخطار ، تاييد و دريافت ورودی را به کاربر نمايش دهد 

بیشتر ببینید