بایگانی برای ‘JavaScript’ دسته

چرا node.js اینقدر طرفدار داره

سه شنبه, 23 آذر 1389

nodejs

به جرأت میتونم بگم node.js انقلابی‌ترین حرکت در زمینه توسعه وب توی یکی دو سال گذشته بوده. node در github سومین پروژه از لحاظ محبوبیته و همین الان که من دارم این مطلب رو می‌نویسم این پروژه بیش از 4000 تماشاچی داره و بیش از 400 بار fork خورده و 100 ها ماژول براش نوشته شده و همه این اتفاقات در کمتر از یک سال و اندی که از شروع این پروژه می‌گذره افتاده.

اگر اخبار و تحولات توسعه وب رو دنبال کرده باشید حتما تا به حال مطالبی در موردش شنیدید اما ممکنه به اهمیت موضوع پی نبرده باشید. به عبارت دیگه اکثر افراد در وهله اول متوجه نمیشن که node چه چیز جدیدی برای ارائه داره و چی باعث محبوبیت اون شده.

اگر می‌خواهید در مورد node بیشتر بدونید در ادامه این مطلب با من همراه باشید.

(دنباله…)

فشرده ساز اسکریپت گوگل

یکشنبه, 29 آذر 1388

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

اولین ابزارهایی که در این زمینه تولید شدند الگوریتم های ساده ای داشتند که با استفاده از Reqular Expression ها کار می‌کردند و به همین دلیل مشکلاتی هم داشتند. برای مثال JSMin و Dean Packer از چلاننده(Minifier) های معروفی هستند که به همین روش کار می‌کنند. مثلا JSMin نمی‌تواند همه‌ی کاراکترهای خط جدید (line feed) را حذف کند چون ممکن است باعث بوجود آمدن باگ در برنامه شود. Dean Packer هم برای اینکه درست کار کند باید تمام دستورات اسکریپت به «;» ختم شده باشند.

این شد که توسعه دهنده ها به فکر تولید چلاننده‌هایی افتادند که بتواند مثل یک موتور اسکریپت (JavaScript Engine) اسکریپت را تفسیر نموده و به بهینه ترین نحو بچلاند. اولین چلاننده از این نسل Dojo ShrinkSafe بود که بر پایه موتور اسکریپت Rhino نوشته شده است. کمی بعد یاهو هم چلاننده ای تولید کرد با نام YUI Compressor که نسبت به سایر چلاننده‌‌های موجود از کارایی بهتری برخوردار بود و این برتری را تا مدتها حفظ کرد و هم اکنون که بیش از دو سال از انتشار نسخه‌ی اول آن می‌گذرد اکثر پروژه ها و فریم ورک های جاوااسکرپیت از این چلاننده برای چلاندن اسکریپت‌هایشان استفاده می‌کنند.

حدود یکی دو ماه پیش گوگل هم پا به عرصه رقابت گذاشت و چلاننده‌ی خودش را با نام Closure Compiler عرضه کرد. این چلاننده از تکنیک های جدیدی استفاده میکند که باعث شده نرخ فشرده سازی آن حدود 10 تا 20 درصد از YUI بیشتر باشد. از نکات قابل توجه در این چلاننده این است که قابلیت شناسایی و حذف کدهای بلااستفاده(dead code) را از درون اسکریپت دارد.

چلاننده‌ی گوگل مشابه YUI یک برنامه Java است که از خط دستور اجرا میشود ولی علاوه بر این گوگل این برنامه را به صورت اپلیکشن تحت وب و API هم ارائه کرده است.

برای مقایسه‌ی تکنیک های بکار رفته در YUI Compressor و Closure Compiler دیدن این slideshow رو توصیه می‌کنم.

تقویم جلالی (هجری شمسی) جاوا اسکریپتی

شنبه, 18 خرداد 1387

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

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

در راستای اشاعه فرهنگ open source من این پروژه رو با لایسنس GPL منتشر کردم. به عبارتی شما در استفاده ، توزیع و تغییر این پروژه آزاد هستید ولی به این شرط که لایسنس این پروژه ، پروژه هایی که از این پروژه منشعب شده اند و پروژه هایی که از این پروژه در آنها استفاده شده است GPL باشند.

ضمنا اگر هنوز تو برنامه ی رکورد شکنی فایرفاکس ثبت نام نکردید اینجا رو کلیک کنید.

IDE تحت وب

شنبه, 5 آبان 1386

توی این دوره و زمونه که انواع و اقسام application های تحت وب پیدا میشه فقط IDE تحت وب ندیده بودیم که اون هم دیدیم.

rainbow9.org یک IDE تحت وب برای html ، جاوا اسکریپت ، CSS و xml و … هست که امکاناتی نظیر autocomplete و اجرا داره.

این روز ها به خاطر آماده شدن برای نمایشگاه فرصت آپدیت کردن نداشتم. به امید دیدار در نمایشگاه سالن 8 غرفه 8 (شرکت فناوری اطلاعات توسعه سامان).

بررسی میزان سازگاری مرورگر ها با استانداردهای وب

یکشنبه, 18 شهریور 1386

طراحی سایتی سازگار با تمام مرورگرها مستلزم داشتن دانش کافی در رابطه با سازگاری مرورگرها با استانداردهای وب است. و در این راستا استفاده از سایت WebDevout.net به عنوان مرجع می تونه کمک بسزایی در جهت کسب اطلاعات مورد نیاز در این زمینه باشه.

این سایت سازگاری ورژن های مختلف مرورگرها رو با استاندارد های HTML و CSS و DOM و ECMAScript به تفصیل مورد بررسی قرار داده.

به عنوان مثال شما می تونید سازگاری یک attribute خاص از یک element رو با ورژن های مختلف مرورگرها از طریق اطلاعات موجود در این سایت بررسی نمایید.
اطلاعات این سایت بقدری دقیقه که به عنوان مثال در مورد یک attribute به ذکر فقط سازگار بودن یا نبودن اکتفا نکرده وعدم سازگاری در شرایط خاص را هم لحاظ کرده است.

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

Technology IE 6 IE 7 Firefox 1 Firefox 2 Opera 8.5 Opera 9
HTML / XHTML 73% 73% 90% 90% 84% 85%
CSS 2.1 51% 56% 88% 92% 92% 94%
CSS 3 changes 10% 13% 14% 24% 8% 19%
DOM 50% 51% 79% 79% 78% 84%
ECMAScript 99% 99% 100% 100% 100% 100%

همونطور که در جدول فوق می بینید IE7 نسبت به IE6 هیچ پیشرفت چشمگیری نداشته و با سایر مرورگرها فاصله زیادی داره.
اما رقابت بین FireFox و Opera شدیده و باید منتظر بود و دید Opera 9.5 و FireFox3 در این رقابت چه میکنند.

Firebug

چهارشنبه, 14 شهریور 1386

Firebug Logoفایرباگ کاملترین ابزار دیباگ و تست کردن CSS و HTML و JavaScript است که به صورت extension بر روی فایرفاکس نصب میگردد.
این ابزار سرعت کار رو برای توسعه گران وب به ویژه برای کارهای Web2 تا چندین برابر افزایش میده.

از قابلیت های این ابزار میتوان به موارد زیر اشاره کرد:

  • یک دیباگر کامل برای جاوااسکریپت با امکان تعریف breakpoint عادی و شرطی و تعریف watch و با قابلیت trace کردن کد ها و بالاخره قابلیت profiler برای profile گرفتن در یک بازه زمانی خاص.
  • error console برای نمایش خطاهای جاوا اسکریپت وCSS و XML , همچنین برای اجرای کد های مورد نظر روی document جاری.
  • امکان inspector برای HTML و امکان مشاهده style های اعمال شده بر روی هر element و همچنین امکان مشاهده property ها و متد های هر element
  • امکان ویرایش کردن کدهای HTML و CSS
  • امکان مشاهده و browse کردن ساختار شی گرای document و browse کردن object های تعریف شده و ویرایش property های آنها.
  • و در نهایت امکانmonitor کردن ترافیک شبکه مرتبط با document جاری به عبارت دیگر امکان مشاهده تمام request های انجام شده در صفحه با تمام جزئیات آنها و مشاهده request های ای جکسی و همچنین امکان مشاهده زمان لود شدن و حجم تک تک request ها.

این extension رایگان و opensource بوده و میتونید اون رو از آدرس http://getfirebug.com دانلود کنید.

Spket IDE – یک IDE خوب برای جاوا اسکریپت

سه شنبه, 13 شهریور 1386

همونطور که میدونید ادیتور خوب برای javascript کمیابه. اکثر ادیتور هایی که برای html وphp وجود دارند از javascript هم پشتیبانی میکنند ولی هیچ کدوم auto complete و outline درست و حسابی ندارند. و ادیتور درست و درمونی هم که ویژه جاوا اسکریپت طراحی شده باشه و به پای Spket برسه وجود نداره.

Spket IDE ScreenShotSpket ادیتوری ویژه javascript می باشد که هم به صورت پلاگینی برای eclipse و هم به صورت مستقل قابل استفاده است.
این ادیتور auto complete خیلی خوبی برای javascript داره که من تا به حال نظیرش رو ندیدم و خیلی برای برنامه نویسی شی گرامناسبه (به عنوان مثال برای کار با فریم ورک prototype).
یکی از ویژگی های جالب این ادیتور قابلیت طراحی extension برای firefox و پشتیبانی از فایل های XUL وXBL هستش.
ضمنا auto complete برای استفاده از ExtJS و jQuery و YUI هم در این ادیتور تعبیه شده که کار با اونها رو خیلی راحت میکنه.

Spket IDE - Auto Completeخلاصه این ادیتور از همه لحاظ کامله و چیزی کم نداره. مخصوصا اگر به صورت plugin برای php eclipse نصب بشه یک IDE کامل برای توسعه وب خواهید داشت.

Spket برای استفاده غیر تجاری رایگانه و میتونید اون رو از آدرس http://www.spket.com دانلود کنید.
ضمنا این برنامه با java نوشته شده و برای نصب احتیاج به J2SE داره که میتونید اون رو از سایت java.com دانلود کنید.