راه های آسان برای بهبود کسب و کار خرده فروشی شما-قسمت اول


هنگامی که نتایج را بررسی می کنید ، شما در می یابید که افراد بسیارموفق با استعداد تر و با هوش تر از شما نیستند؛ بلکه به سادگی آموخته اند که چگونه کارهای خود را به روشی متفاوت تر و سود آورتر انجام دهند.

در اینجا یک لیست جامع از ایده های عملی مشتریان موفق ، همراه با راهنمایی ها و تکنیک هایی ارائه شده که راه کسب و کار شما را از بقیه جدا و از آن  یک تجربه موفق ایجاد می کند.

قسمت اول

 تجزیه و تحلیل مشتری:

  1. مشتریان خود و چیزی که به دنبال آن هستند را بشناسید.
  2. مشتریان خود بر اساس سن، درآمد، شغل و غیره شناسایی و دسته بندی کنید.
  3. دلیل این که چرا مشتریان از فروشگاه شما خرید می کنند را دریابید. (خدمات، راحتی، اعتماد و اطمینان، کیفیت، سرعت، و یا شایستگی).
  4. نیروهای بازاری موثر بر رفتار مصرف کنندگان در مواجهه با قیمت کالا و نرخ پرداختی مورد نظر آنها را درک کنید.
  5. بر زمینه های تجدید نظر مشتری مانند اندازه های خاص، قیمت های پایین تر، خدمات بهتر، انتخاب گسترده تر، محل خوب و یا زمان مناسب ، تاکید کنید.
  6. محصولاتی بی نظیر با قیمتی که برای مشتریان قابل پرداخت است ، ارائه دهید.
  7. یک سیستم ردیابی برای تعیین تعداد خرید روزانه ی مشتریان در فروشگاه خود قرار دهید.
  8. از بهترین مشتریان خود در جهت افزایش کسب و کارتان پیشنهاداتی دریافت کنید.
  9. برای ایجاد ارتباط مجدد با مشتریان از دست رفته و یا غیر فعال خود تلاش کنید.
  10. از یک پرسشنامه برای کمک به فهمیدن نیاز مشتریان در فروشگاه خود استفاده کنید.
  11. برای ایجاد تغییراتی در جهت رضایت مصرف کنندگان جدید و آگاه خود اقدام کنید.

منبع: طراحی سایت



درآمد شغل طراحی وب سایت چقدر است


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

طبعا یکی از راحتترین پاسخها نیز این است که بستگی به خودتان و پشتکارتان دارد! اما اگر بخواهیم دقیقتر شویم، شغل طراحی وب ویژگیهایی دارد که آنرا از بسیاری شغلهای دیگر متمایز می کند. اینجا به چند مورد به صورت خلاصه اشاره می کنیم:



1. درآمد طراح سایت:

بستگی دارد شما برای یک شرکت به عنوان کارمند کار کنید یا به صورت مستقل و انفرادی. در حالت اول حقوق میانگین برای طراح وب به شکل تمام وقت (در سال 91 - تهران) معمولا بین 600 هزار تومان تا 1.5 میلیون تومان است که میزان دقیق آن بستگی به سطح مهارتهای شما، سختی کار خواسته شده، بزرگی شرکتی که برای آن کار می کنید و... دارد. اما در حالت دوم، یعنی اگر به صورت مستقل کار کنید، بستگی به اینکه چند پروژه در ماه بگیرید می توانید قیمتهایتان را بالا و پایین کنید. برای اینکه حدود درآمد دستتان بیاید، بابت طراحی اختصاصی یک وبسایت داینامیک با امکانات معمول سایتهای شرکتی، معمولا بین 400 تا 600 تومان می توانید دریافت کنید. حالا اگر فرض کنید ماهانه فقط دو پروژه بگیرید، حدود یک میلیون در ماه درآمد خواهید داشت که گرچه بالا نیست، اما برای شروع بد هم نیست. این البته برای طراحان وب در سطح متوسط و در ایران است و اگر شما یک طراح وب حرفه ای باشید به نسبت بزرگی پروژه ها و قیمتها بسیار بالاتر از این خواهد بود. ضمن آنکه تعرفه طراحی وب در کشورهای اروپایی و امریکا جزء شغلهای پردرآمد است و اصلا قابل مقایسه با درآمدهای ایران نیست.


اما شغل طراحی وبسایت ویژگیهای منحصر به فرد دیگری نیز دارد که اینها بازدهی و سود این حرفه را بیشتر می کنند.




2. عدم وابستگی به موقعیت جغرافیایی:
در واقع یک طراح وب می تواند در کلبه ای در یک روستای دور افتاده هم مشغول به حرفه خود باشد! کافی است یک خط تلفن و برق باشد تا بتواند تقریبا از همه جای دنیا سفارش بگیرد. در واقع یک طراح وب (چه به عنوان طراح مستقل و فریلنسر، و چه به عنوان کارمند دورکار یک شرکت) تمام کارهای خود را در بستر وب انجام می دهد و لزوما نیازی به حضور نیست. در خانه خود می توانید بنشینید و با ده ها مشتری از شهرهای مختلف سر و کله بزنید. کمتر شغلی چنین ویژگی‌ای دارد.
از طرفی، یک طراح وب اصولا باید به این اصل ایمان داشته باشد که وبسایت یک فرد یا شرکت نقش فروشگاهی بین المللی را دارد. اگر زبانتان هم خوب باشد شاید بتوانید روی درآمدهای خارجی (که بسیار بسیار بسیار بالاتر از نرخهای معمول در ایران است) هم حساب کنید.





3. عدم نیاز به سرمایه‌ی اولیه، به جز زمان:

زمان: بزرگترین سرمایه برای طراحی وبسایت

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





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


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

منبع: طراحی سایت

مشکلات فونت فارسی برای وب سایت ها


آنچه در زیر مطالعه می‌فرمایید بخشی از یک سخنرانی است که در همایش استانداردهای وب و بستر وب باز، توسط ناصر حاجلو درباره با وب فونت (Web Fonts) بیان شده و در وبلاگ وب تارگت منتشر شده است:
 
"...یک فونت از قسمت‌های مختلفی تشکیل شده است. که عبارت است از کاراکتر ها، حروف و سمبل‌هایی هستند که در یک فونت وجود دارند. از طرفی دیگر یک کاراکتر دارای حالات مختلفی است، برای مثال کاراکتر ب از حالات ب – بـ – ـبـ – ـب تشکیل شده است، این حالات مختلف یک کاراکتر را گلیف می‌گویند. ابزاری به نام موتور رندر متن با توجه به مشخصات هر کاراکتر نسبت به کاراکترهای بعد و قبل از آن یکی از حالات مختلف گلیف مورد نظر را شناسایی کرده و بر روی خروجی ترسیم می‌کند.
اما نکته مهمی که باید به آن توجه داشت این است که هر گلیف دارای کد متفاوتی است که به آن کد پوینتگفته می‌شود. در سالهای آغازین دنیای کامپیوتر، تمامی مراودات انجام شده با کامپیوتر با استفاده از زبان انگلیسی و یکسری سمبل‌های خاص انجام میشد. این دسته از حروف در استانداردی با نام اسکی گنجانده شدند.
 

 
با فراگیرتر شدن کامپیوترها در نیمه دوم دهه ۹۰ میلادی، نیاز بود تا زبان‌های بیشتری به دنیای دیجیتال وارد شود. به همین دلیل تولیدکنندگان کامپیوتر اقدام به ایجاد استاندادرهای مختلف کردند که هر استاندارد حاوی کاراکترها و سمبل‌هایم ورد نیاز یک یا چند زبان با ریشه مشترک بود. به این صفحات کدپیج گفته میشد. متاسفانه وجود کدهای برابر و یکسان در کدپیج‌های مختلف باعث سردرگمی کاربران شده بود. برای مثال شخصی با استفاده از کدپیج زبان آلمانی یک متن را می‌نوشت و دیگری بدون اینکه اطلاعی از کدپیج نگارنده داشته باشد، با استفاده از کدپیج روسی اقدام به مطالعه متن می‌کرد. نتیجه آنکه متنی که کاربر نهایی مطالعه می‌کرد حاوی یکسری کاراکتر و سمبل زبان روسی بود که هیچ ارتباطی با متن نوشته شده به زبان آلمانی نداشت. با ازدیاد این مشکلات کنسرسیومی به نام یونی‌کد اقدام به وضع استانداردی کرد که با نام خود این کنسرسیوم به نام Unicode شناخته می‌شود.
 
استاندارد یونیکد:
یونی‌کد، حاوی اطلاعات مربوط به کاراکترها و سمبل‌های تمامی زبان‌های زنده و مرده دنیاست. این استاندارد با مشخص کردن جداول متفاوت، زبانهای با ریشه مشترک را مانند زبان عربی، فارسی، فارسی دری، اردو و غیره را در یک جدول جای داده و تمامی اطلاعات مورد نیاز آنها را شامل می شود . بدون اینکه کد مورد استفاده در یک گلیف، در گلیف دیگری در هر زبان دنیا استفاده شده باشد.
 
 
در سالهای ابتدایی دنیای وب، قراردادن اطلاعات در وب از اهمیت بسزایی برخوردار بود. هر زبانی، مهمترین آثارش را در وب ثبت می‌کرد تا به دست دیگران برساند. لیکن بدلیل محدودیت‌های ابتدایی، صرف قراردادن اطلاعات در وب ، نگارنده و خواننده را راضی نگاه می‌داشت. با پیشرفت‌هایی که در طول سالهایی اندک صورت پذیرفت، این قابلیت ایجاد شد که صفحات بصورت زیباتری به نظر خواننده برسد.
 
طراحان وب، با استفاده از تصاویری با پیش‌زمینه شفاف به خلق متون با کیفیت و زیبا پرداختند و همین امر باعث بوجود آمدن موج دوم نمایش اطلاعات در وب شد. نهایتا با توجه به نیاز کاربران برای نمایش متون زیباتر در وب شرکت‌های مختلف اقدام به وضع استانداردهای داخلی کردند تا با رعایت آنها، مطالب با شکل زیباتری به نظر بیننده برسد. اما قدم آخر، استاندارد یکسانی بود که برای رعایت در تمامی مرورگرهای وب پیشنهاد شد. وب فونت ؛ گرچه از سال ۲۰۰۹ میلادی هنوز به عنوان یک پیشنهاد باقی مانده، لیکن بدلیل پشتیبانی بسیار خوب تبدیل به تنها روشی شده که طراحان وب از آن برای خلق متون زیباتر بهره ببرند.
 
در سالهای ابتدایی وب، دوستان فعال در زمینه طراحی سایت برای نمایش متون مورد نظر از فونت‌های استاندارد استفاده می‌کردند. برای زبان فارسی، عموم وب‌سایت‌ها از فونت Tahoma استفاده می‌کردند، تنها دلیل استفاده از این فونت، اطمینان خاطر از وجود این فونت در سیستم کاربر نهایی بود. با ظهور وب فونت‌ها این قابلیت بوجود آمد که طراح صفحه وب، یک فونت که در سیستم کاربر وجود نداشت را، در صفحه وب مورد نظرش استفاده کند و مطمئن باشد که کاربر نهایی صفحه مورد نظر را با استفاده از فونت دلخواه او مشاهده می‌کند.
در آغاز موج نو نگرش به فونت‌ها در وب، شرکت‌های تولید کننده مرورگر اقدام به وضع استانداردهای داخلی برای پشتیبانی از فونت‌های خاص کردند. برای مثال مرورگر اینترنت اکسپلورر از فرمت EOT پشتیبانی می‌کرد در حالی که فایرفاکس از فونت‌های TTF پشتیبانی می‌کرد. به تدریج مرورگرهای مختلف از فرمت‌های مختلف فونت پشتیبانی کردند و این پشتیبانی‌های متفاوت از فونت‌های متفاوت باعث بوجود آمدن تفاوت در نمایش حروف گردید. بعضی مرورگرها کلمات را با وضوح بهتری نمایش می‌دادند در حالی که برخی دیگر وضوح نمایش کمتری داشتند.
از طرف دیگر، وجود موتورهای رندر متن متفاوت در مرورگرها باعث بوجود آمدن مشکلاتی در نمایش حروف میشد. که البته این مشکل هنوز هم وجود دارد. برای مثال عمده مرورگرهای نصب شده در ویندوز ایکس پی اعم از اینترنت اکسپلورر ۶ – فایرفاکس پیش از نسخه ۴ – اپرا – سافاری و غیره از موتور رندر متن پیش‌فرض ویندوز، Uniscribe استفاده می‌کنند که از Grayscale Antialiasing برای نمایش متون استفاده می‌کند. اما اینترنت اکسپلورر ۷ و ۸ از ClearType برای نمایش متون استفاده می‌کنند. با این تفاوت که اگر کاربر اقدام به نصب اینترنت اکسپلورر ۸ کند، موتور رندر متن پیش‌فرض ویندوز هم تغییر می‌کند، لذا اگر کاربر از فایرفاکس پیش از نسخه ۴ یا سافاری و اپرا استفاده کند، متون او با استفاده از ClearType نمایش داده خواهند شد. اما اینترنت اکسپلورر ۹ و فایرفاکس نسخه ۴ به بعد، از DirectWrite برای نمایش متون استفاده می‌کنند. همچنین باید در نظر داشت که سیستم عامل ایکس مکینتاش از نسخه ۱۰٫۴٫۲ به بعد از CoreText جهت نمایش متون استفاده می‌نماید.
این تفاوت چشمگیر در موتورهای رندر متن باعث بوجود آمدن مشکلات زیادی در نمایش متون شده است که در بعضی محصولات کلمات بصورت شکسته شده نمایش داده می‌شوند. لذا خود فونت به تنهایی هر چقدر هم که کامل و زیبا باشد جهت نمایش متون کافی نیست، موتورهای رندر متن هم از اهمیت بسزایی برخوردار هستند.
چنانچه پیشتر گفته شد، یک فونت از تعدادی گلیف ایجاد شده است، و هر چه تعداد این گلیف‌ها بیشتر باشد یک فونت برای نمایش اطلاعات غنی‌تر خواهد بود. اما این تعداد زیاد در وب قابل توجیه نیست. تصور کنید شما یک متن ساده را به زبان فارسی در وب نمایش می‌دهید، آیا نیاز هست که فونت شما حاوی گلیف‌های زبان انگلیسی یا آلمانی باشد؟ مسلما وجود گلیف‌های بیش از اندازه و افزونگی گلیف‌ها باعث بالا رفتن حجم یک فونت می‌شود که این امر در وب اصلا خوش‌آیند نیست.
 
مورد دیگری که باید در نظر داشت آن است که زبان‌های لاتین عموما دارای کاراکترهایی با ارتفاع یکسان هستند، اما زبان‌هایی مانند زبان فارسی، عربی، اردو و غیره دارای کاراکترهای کاملا متفاوتی هستند، برخی به سمت بالا کشیده می‌شوند و برخی به سمت پایین. این تفاوت ظاهری در فونت‌های لاتین و زبان‌های دیگر باعث شده که استانداردهای تدوین شده، که عموما بر اساس رسم‌الخط لاتین وضع شده‌اند، فارسی‌زبانان را دچار مشکل کند. چراکه حروف مرتفع فارسی بصورت بالقوه توانایی رعایت ارتفاع استاندارد حروف لاتین را ندارد، و حتی در صورتی که این ارتفاع رعایت شود کلمات خطوط پایین‌تر، کلمات جملات خطوط بالاتر را دچار مشکل می‌کنند و کلمات روی هم می‌افتند.
 
خیلی از این مشکلات را در زمان طراحی فونت می‌توان برطرف کرد. برای مثال پیاده‌سازی صحیح ارتفاع با صرف زمان تا حد قابل قبولی قابل رفع است، بخصوص مشکل کدپونت‌های اشتباه که در فونت‌های فارسی امری مرسوم است، با صرف کمی زمان کاملا برطرف می‌شود. گلیف‌های مشخص و با تعداد پایین هم در پایین آوردن حجم فونت موثر خواهد بود. همه اینها نشان از یک چیز دارد و آن این است که یک وب فونت باید با دید کاربرد در وب طراحی شود. در اکثر فونت‌های فارسی حروف انگلیسی هم گنجانده شده، ولی در یک وب فونت بدان‌ها نیازی نیست لذا با یک طراحی صحیح تا حد زیادی می‌توان این مشکلات را برطرف کرد.
 
برای توسعه یک وب فونت نیازی نیست تا همه کارها را از ابتدا انجام دهیم، اگر یک فونت سالم در اختیار داشته باشیم می‌توانیم با حذف گلیف‌های اضافه حجم آن را پایین بیاوریم و با کمی کنترل گلیف‌ها میتوان ارتفاع حروف را نیز مشخص کرد. سپس با گرفتن یک خروجی مجدد و تعیین اطلاعات جانبی فونت و مجوز استفاده از آن، می‌توان از یک فونت بصورت وب فونت استفاده کرد. سرویس‌های زیادی هستند که فونت‌ها را تبدیل به وب فونت می‌کنند. عملکرد بیشتر آنها یکسان است و صرفا یکسری از جداول مورد استفاده در فونت را برای فشده کردن هر چه بیشتر فونت‌ها از بین می‌برند. برای مثال جداول کرن که نبود آنها حجم قابل توجهی از فونت را کم می‌کند. در نهایت با استفاده از یکسری دستورات CSS می‌توان وب فونت را به یک صفحه وب الصاق کرد تا کاربر نهایی در هنگام بازدید از صفحه وب شما، فونت دلخواه شما را مشاهده نماید."
 

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

طراحی فوتر سایت به سبک Web 2.0

طراحی فوتر سایت به سبک Web 2.0

فوتر (Footer) در طراحی وب معمولا به پایین ترین بخش یک صفحه وب گفته می شود. در طراحی های قدیمی فوتر تنها جایگاهی بود که کپی رایت سایت و حداکثر لینکهای بخشهای اصلی سایت به همراه لینکهایی نظیر نقشه سایت (Site Map) و قوانین استفاده (Terms of Services) و... نمایش داده می شد.

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

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

اینجا نمونه هایی از فوترهای عریض و طویل وب دویی را می توانید ببینید.

منبع: طراحی سایت

برج هانوی با جاوااسکریپت



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

یک الگوریتم بازگشتی برای برج هانوی

الگوریتم بازگشتی شناخته شده برای مسأله برج هانوی می تواند بوسیله تابع جاوااسکریپت زیر پیاده سازی شود:


ورودی الگوریتم چهار پارامتر عددی زیر می باشد:
1.n: تعداد دیسکها
2.from: برجی که دیسکها برروی آن قرار دارند.
3.to: برجی که دیسکها باید بر روی آن قرار گیرند.
4.via: برجی که بعنوان واسط بین دو برج from و to عمل می کند.
بطور معمول (اگر برجها را 0،1و2 نامگذاری کنیم) ، صدا زدن اولیه برای n دیسک به این صورت می باشد : (Hanoi(n,0,1,2 .
یک الگوریتم بازگشتی سعی می کند که مسأله را به مسأله های کوچکتری تبدیل کند(نمونه هایی از مسأله اصلی ولی با اندازه کوچکتر) سپس راه حل مسأله بزرگتر را با استفاده از رها حل مسأله کوچکتر پیدا کند. الگوریتم بازگشتی برج هانوی بر پایه این مشاهده واقع شده که n -1 دیسک بالایی از برج from (به همراه دو برج دیگر) مسآله کوچکتری از مسآله اصلی است و بنابراین می تواند با صدا زدن( Hanoi(n-1, 0,1,2 حل شود. اینکار دیسک ها را به برج وسط (1) با استفاده از برج واسط (2) انتقال می دهد. بعد از این ما می توانیم با صدا زدن Hanoi(n-1,1,2,0) ، n امین دیسک را از برج 0 به برج 2 انتقال داده و سپس تمام n-1 دیسک از برج وسط را با استفاده از برج 0 به آخرین برج انتقال دهیم .


مدیریت کردن انیمیشن در جاوااسکریپت مشکل است

معمولاً کد انیمیشن می تواند از توابع جاوااسکریپتی ()setInterval یا ()setTimeout استفاده کند اما اینکا چندان ساده نیست. فرض کنید در کد بالا، تابع ()moveDisk با استفاده از ()setInterval صدازده شده است. یک مشکل بوجود می آید زیرا کدی که تابع را صدا زده به اجرا شدن ادامه می دهد و با انیمیشن تداخل پیدا می کند. یک راه حل اینست که اجرای کد تا کامل شدن اجرای انیمیشن به خواب رود اما جاوااسکریپت یک مکانیزم تأخیر واقعی ندارد.
به نظر می رسد که انیمیشن های جاوااسکریپت از این الگو تبعیت می کنند : اگر انیمیشن را شروع کردی دیگر هیچ کاری نکن.
برای الگوریتم برج هانوی می خواهیم تابع ()moveDisk را صدا بزنیم و انیمیشن را اجرا کنیم و منتظر شویم تا ()moveDisk بعدی صدازده شود و انیمیشن را اجرا کنیم و به همین ترتیب. اما با انیمیشن جاوااسکریپت ما مجبوریم که الگوی زیر را نبال کنیم: ()moveDisk را اجرا کن، ()moveDisk بعدی را اجرا کن و به همین ترتیب. به عبارت دیگر هر اجرای ()moveDisk هنگامی که کامل شد باید صداکننده ()moveDisk بعدی باشد. برای پیاده سازی این سناریو از stack استفاده می کنیم. استفاده از استک ترتیب اجرای()moveDisk را حفظ می کند.
کد زیر پیاده سازی استک را نشان می دهد: 



بعد از صدازدن Hanoi() ، callStack  یک ورودی برای هر ()moveDisk خواهد داشت. پردازش این ورودی ها بر عهده تابع ()moveDisk می باشد. این تابع یک ورودی از callStack برمی دارد و یک شیء به نام moveInfo برای ارسال اطلاعات به تابع ()animateMove می سازد. انیمیشن با کد ;(myTimer = setInterval(animateMove,speed); شروع می شود.
کد زیر مربوط به تابع ()animateMove می باشد:



تابع ()animateMove یک دیسک را به بالا سپس  راست یا چپ  سپس پایین حرکت می دهد  و در آخر ()moveDisk بعدی را صدا می زند. توجه کنید که قبل از صدازدن()moveDisk  تایمر با استفاده از کد (clearInterval(myTimer کنسل شده است تا از استفاده نادرست این تابع از شیء moveInfo اجتناب شود.