PDA

View Full Version : آیا نیاز به ساپورت خاموش بودن جاوااسکریپت است؟



eshpilen
شنبه 04 شهریور 1391, 09:58 صبح
میدونید که از قدیم مشکلات آزاردهنده ای برای برنامه نویسان وب وجود داشته.
یکیش داستان قدیمی جنگ و ناسازگاری مرورگرها بود که البته فکر میکنم خوشبختانه در حال حاضر وضع این مشکل بخاطر استانداردهای جهانی باز (W3C و غیره) و کار شدن روی این قضیه و ظهور مرورگرهای خوب و بازمتنی مثل فایرفاکس، نسبت به گذشته خیلی بهتر شده باشه.
مرورگرهای تاریخی مثل IE6 هم بودن و هنوز هم هستن که باعث دردسر بودن اما خوشبختانه فکر نمیکنم دیگه هیچ آدم عاقلی بیاد بگه که لازمه این مرورگر هم ساپورت بشه. دیگه رسما و عرفا منسوخ شده بحساب میاد.

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

حالا من این سوال رو دارم که با توجه به پیچیدگی و حجم و اتکای روز افزون برنامه های وب بر جاوااسکریپت، آیا میشه دیگه از این تعهد دست برداشت و دیگه حالتی رو که جاوااسکریپت کار نکنه درنظر نگیریم و در نتیجه براش فکر اضافه نکنیم و کد اضافه ننویسیم و تست اضافه نکنیم و به این شکل این وقت و انرژی رو برای کار مفیدتری صرف کنیم؟
درمورد نظرات رسمی و استانداردها و عرف روز و وضعیت سایتها و نرم افزارهای معتبر در این مورد چه اطلاعاتی دارید؟

البته یه چیزی رو هم بگم و اون اینکه حتی اگر در دسترس نبودن جاوااسکریپت رو درنظر نگیریم، مواردی هست که باید از بکارگیری جاوااسکریپت به تنهایی اجتناب کرد. بطور مثال گزینه های منوی Navigation یک سایت اگر فقط با جاواسکریپت کار کنن و مثلا نشه روی هر آیتم کلیک راست کرد و اون رو در تب جداگانه ای باز کرد یا نشه بوکمارکش کرد، بنظر من این کار درستی نیست. شخصا اینطور برنامه نویسی رو ناشیانه و غیرمسئولانه میدونم و اینطور طراحی حداقل برای کاربران حرفه ای یوزرفرندلی نیست. پس همونطور که onclick یک آیتم منو رو ست میکنیم باید href اون رو هم ست کنیم (حتی الامکان).

eshpilen
شنبه 04 شهریور 1391, 10:29 صبح
شما اول از همه باید ببینی نرم افزارت در چه سطحی هست. مثلا فرض کن یه نرم افزار انترپرایز نوشتی با کلی جاوااسکریپت. خب قاعدتا برای یه همچین سایتی فعال بودن جاوااسکریپت الزامیه.
اما مثلا همین سایت یکی بدون جاوااسکریپت بازش بکنه باید باز بشه. ولی ممکنه یه سری از افکتها و یا یک سری از امکانات براش کار نکنه که طبیعی هست. مثلا ویزیویگ کار نکنه. یا مثلا نتونه پست به صورت ajax بزاره (چون باید جاوااسکریپتی کار کنه) . ولی اینکه ما بخواییم فول پشتیبانی بهش بدیم واقعا بی معنی هست.

نه منظور من از همون سطح عادیش هست.
برای سایتها و نرم افزارهای عادی.
یعنی فرض کنیم جاوااسکریپت هست و باید باشه.
دیگه کار نداریم برنامه در چه سطحی هست یا اون کارایی چیه (کارایی اساسی یا اضافی یا صرفا برای یوزرفرندلی).
همونش هم یک مقدار اذیت میکنه و وقت و انرژی برنامه نویس رو میگیره.
من خودم سیستم رجیستر و لاگینی که نوشتم همه چیش بدون جاوااسکریپت هم کار میکنه. ولی احساس میکنم امروزه جاوااسکریپت هم مثل HTML و CSS دیگه باید بعنوان یک ابزار اساسی و همیشه موجود تلقی بشه؛ با توجه به واقعیت های موجود!

اگر خیلی سایتها و برنامه ها بدون جاوااسکریپت کار نمیکنن، پس چرا بیایم برای بقیهء سایتها و برنامه ها این کار رو بکنیم؟
چون دیگه وقتی تقریبا تمام کاربران مجبور هستن برای یکسری سایتها و برنامه ها جاوااسکریپت داشته باشن، خیلی از دلایل غیرفعال بودن جاوااسکریپت هم تاحد زیادی بی معنا میشن (دلایلی مثل امنیت). از طرف دیگه طبیعتا آمار کاربرانی که جاوااسکریپت ندارن هم خیلی کمتر میشه نسبت به گذشته (فکر کنم الان آمارشون واقعا خیلی کم باشه).

MMSHFE
شنبه 04 شهریور 1391, 19:19 عصر
نظر شخصی من اینه که واقعاً عمر برنامه نویسها ارزش زیادی داره و زمان اینکه برنامه نویس بخواد خودش رو با همه شرایط مشتریان تطبیق بده و تمام حالتها رو توی برنامه پوشش بده به سر اومده. دیگه وقتشه که مشتری یکم با برنامه نویسها و برنامه ها تطبیق پیدا کنه. نمیگم مطابقت 100% چون با اصل مشتری مداری سازگار نیست اما یکسری حداقلها رو باید رعایت کنه. مثلاً الآن دیگه میدونیم اگه برنامه به خوبی امن شده باشه، جاوا اسکریپت نمیتونه خطر جدی ایجاد کنه. بنابراین، باید مشتری جاوا اسکریپت رو فعال کرده باشه تا بتونه از سایت استفاده کنه. برای مثال، مگه برای گوگل خیلی سخت بود که IE6 رو ساپورت کنه؟ اما این کار رو نکرد، با این توجیه که وقتشون ارزشمندتر از این هست که بخوان سازگاری با مرورگرهای فسیل شده رو حفظ کنن. حالا هم بنظر من وقت ما مهمتر از این هست که با کاربران فسیل شده بخوایم سازگار بشیم. قصد اهانت به هیچ کاربر محترمی رو ندارم ولی واقعاً برای کاربری که JS رو غیرفعال میکنه عنوان مناسبتری نتونستم پیدا کنم.

colors
شنبه 04 شهریور 1391, 20:01 عصر
درود

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

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

و در آخر : برای کاربران حس و تجربه رضایتبخشی رو بوجود بیاریم. حتی میتونیم با گزینه های فریبنده و خودنما کار خودمونو تکمیل کنیم ولی باید در هر عمل و در هر لحظه با دقت کاربررو کنترل کنیم.

Unique
یک شنبه 05 شهریور 1391, 18:26 عصر
شاید یکی از مسائلی بود (البته به همراه بحث Browser بیشتر) که همیشه میخواستم مطرح کنم !

راستش وقتی داریم در مورد تکنولوژی صحبت میکنیم باید به خاطر داشته باشیم که توی ایران زندگی میکنیم و به نظر من بیش از 70% کاربران در حد مبتدی هستند و تنها میتونن با Mouse مرورگر ویندوزشون و اون هم Internet Explorer را باز کنند ! شاید حرف من به افرادی بر بخوره اما کاری نداره ! شما یک statistic که بتونه به شما بگه کاربران از چه تکنولوژی هایی استفاده میکنند روی سایت بگذارید و نتیاج در مدت 1 ، 3 ، 6 ماه و یک سال در بیارین ! قطعا متوجه میشین که بیش از 80% کاربران ایرانی شما دارن از IE استفاده میکنند !و حدود 30% این دوستان هم دارند از IE6 و 15 تا 20 درصد از IE 7 استفاده میکنند ! این بسیار بسیار وحشتناک هست ! شاید فقط IE8 به بعد باشه که میشه 90% اطمینان داشت با استاندارد های W3 کمی مطابقت ایجاد کرده و بقیشون واقعا به درد Recycle Bin میخورند !

این آمار اگه کاربران شما خونگی نباشند و در ادارات و دانشگاه ها و مراکز دولتی باشند بیشتر خواهد بود ! حالا دو راه حل میمونه ! مثل بیشتر سایت های دولتی و برخی از خصوصی ها شما IE را مرورگر ملی بدونی و بیخیال Firefox و Chrome بشی (بقیه کلا زیر 1% هستند در ایران مثل opera و safari و ارزش بحث کردن ندارند) یا اینکه بیای با بدبختی خودت را با همه سازگار کنی که در مورد سایت های گرافیکی با ظاهر غیر ستونی واقعا سخته ! حالا اون آدمی که داره از IE6 استفاده میکنه از کجا بدونه این مرورگر حتی PNG را هم نمیتونه Transparent و درست نشون بده ! پس اگه سایت شما توی مرورگرش خوب نبود میگه سایتش در پیته !
من ابتدا گفتم بی خیال این جماعت ولی دیدم واقعا دارم مشتری از دست میدم و ارزش این بی خیال شدن را نداره ! اومدیم کار فرهنگی بکنیم هر کسی مرورگر قدیمی داشته بهش popup بدیم "برادر گرامی برای افزایش سرعت ، امنیت و کیفیت خودتون در مرور صفحات سایت ما بیاین و فلان و فلان ورژن را دانلود و نصب کنین و ...) دیدیم اوضاع بدتر شد و حتی چندین نفر به ما زنگ زدن آقا سایتتون پیام امنیتی میده و از این حرفا. حالا این مطالب د رمورد سایت های خودمون بود ! مشتری که میخواد سایتش روی opera هم باز بشه ! حالا بیا بگو آقای عزیز این مرورگر توی دنیا 2% هم ازش استفاده نمیکنند ! ایران که دیگه هیچی !

خلاصه سر این مرورگر هنوز خیلی اعصابم خورده و مجبورم بشینم برای همشون بهینه سازی کنم و حتی نتونستم بی خیال IE6 بشم ! راه حلش اینه که سایت های پر بازدید ایرانی در یک اقدام درست مانع از ورود کاربرایی بشوند که مرورگر های نسخه پائینی دارند مثلا خبرگزاری فارس یا varzesh3 همچین کاری انجام بدهند !

در مورد جاوا اسکریپت من آمار بسیار بسیار پائینی را دارم که جاوا اسکریپتشون غیر فعال بوده و من ازشون چشم پوشی کردم و فقط ارجاعشون میدم به صفحه ای که با توجه به مروگر نشون میده چطور اون را فعال کنند !