اگر قصد دارید سایت خود را از هر نظر ایمن نمایید لازم است نکاتی را رعایت کنید. اما آیا میدانید تأمین امنیت سایت از چه راههایی امکانپذیر است؟ اگر میخواهید امنیت سایت خودتان را بالا ببرید باید به نکات مهمی توجه کنید. به شما پیشنهاد میکنم در این مقاله همراه ما باشید.
تمام اقداماتی که در جهت بالا بردن حداکثری ضریب امنیت یک سایت انجام میشود بهعنوان امنیت سایت شناخته میشود.
حفظ امنیت سایت به فاکتورهای زیادی بستگی دارد تا بتواند امکان نفوذ به سایت را به حداقل برساند. موارد مهمی از جمله امنیت شبکه، امنیت اینترنت، امنیت سیستم عامل، امنیت نرمافزار و فاکتورهای بسیار دیگری وجود دارند که همگی در امنیت نهایی یک سایت نقش ویژهای دارند.
در واقع امنیت یک سایت شامل شرایطی است که در هنگام خدمات رسانی و انجام امور معمولی، میزان آسیبپذیری به حداقل برسد.
یک سایت زمانی میتواند به فعالیت ادامه دهد و از ثبات و اعتبار خود دفاع کند که امنیت داشته باشد. بنابراین تامین امنیت سایت از اهمیت بسیار بالایی برخوردار است. بسیاری از کاربران و مدیران سایتهای عادی و حتی سایتهای بزرگ و معتبر به موضوع امنیت اهمیت زیادی نمیدهند و آن را به صورت جدی پیگیری نمیکنند. اینکه یک سایت به دست اسپمرها نیفتد و هک نشود نمیتواند دلیلی منطقی برای امن بودن آن باشد چرا که در صورت پیشرفت سایت میتواند مورد حمله هکرها قرار بگیرد و زحمات چندین ساله مدیران را به هدر بدهد.
در واقع حفظ امنیت سایت زمانی مشخص میشود که مورد حمله هکرها قرار بگیرد. زمانی که هکرها به سایت حمله میکنند ممکن است که سایت به دلیل نداشتن امنیت مناسب به راحتی هک شود و یا اینکه به دلیل داشتن امنیت بالا هیچگونه آسیبی را متحمل نشود. با توجه به اینکه نوع و تعداد روشها برای هک کردن یک سایت بسیار زیاد است، امکان دارد هر سایتی در هر لحظهای مورد حمله هکرها قرار بگیرد بنابراین مسئله امنیت سایت حیاتیترین مسئله برای ادامه فعالیت آن است.
برای آنکه امنیت سایت خودتان را تأمین کنید و با خیالی راحت به فعالیت ادامه دهید نکات زیادی وجود دارد که باید حتماً رعایت شود. علاوه بر مواردی مانند امنیت شبکه، امنیت اینترنت و سیستم عامل که بیان کردیم لازم است که برای تأمین مطمئنتر امنیت سایت خودتان موارد زیر را رعایت کنید.
هاست در واقع حکم اتاق کار مجازی شما را دارد. باید هاست خودتان را از شرکتهایی معتبر و قابلاعتماد خریداری کنید چرا که هاست، میزبان سایت شما خواهد بود و امنیت آن اهمیت بسیار ویژهای دارد. همچنین سعی کنید برای هر سایت یک هاست جداگانه داشته باشید. هرچند که هاست این قابلیت را دارد که چندین سایت را به صورت همزمان میزبانی کند اما این کار اصلاً توصیه نمیشوند. اینکه فضای هاست شما زیاد است دلیلی برای نصب چندین سایت بر روی آن نیست. در صورتی که حتی یک پلاگین از یک سایت شما مورد حمله هکرها قرار بگیرد، میتواند آسیبی جدی به تمام سایتهایی که بر روی یک هاست مشترک نصب کردهاید وارد کند.
سیستم مدیریت محتوا (cms) از جمله موارد اولیه و لازم در تشکیل یک سایت است. امروزه cms های بسیار زیادی وجود دارند که میتوان از آنها استفاده کرد. سیستمهای منسوخ و ناامن میتوانند راحتترین هدف برای هکرها باشند. از CMS های استفاده کنید که قابلیت بهروزرسانی داشته باشند؛ مانند وردپرس که بصورت کاملا منظم در حال بروزرسانی و رفع باگهاست. امروزه هکرها پیشرفتهای بسیار زیادی داشتهاند و به صورت اتوماتیک عمل میکنند و دائماً سایتها را بررسی میکنند؛ بنابراین CMS هایی که در کوتاهترین زمان ممکن بهروز میشوند میتوانند گزینههای خوبی برای ساختن سایتها باشند. بعد از بهروزرسانی CMS حتماً سعی کنید که تمامی پلاگین هایی که استفاده میکنید بهروز شوند. هکرها ممکن است حتی در کمتر از یک ساعت به سایت حمله کنند و آسیبها جبرانناپذیری وارد کنند.
در صورتی که از CMS هایی استفاده میکنید که دارای تنظیمات پیشفرض هستند حتماً سعی کنید که آنها را سفارشیسازی و شخصیسازی کنید. یکی از رایجترین حملاتی که توسط هکرها انجام میشود به CMS هایی است که از تنظیمات پیشفرض استفاده میکنند.
شاید شما هم شنیده باشید که نصب SSL میتواند در حفظ امنیت سایت تاثیر خوبی داشته باشد. اما باید بدانید که برای نصب SSL دو نظریه و تفکر وجود دارد. بسیاری میگویند که SSL بههیچعنوان از سایت محافظت نمیکند، در برابر حملات واکنشی ندارد و توزیع نرمافزارهای مخرب را متوقف نمیکند؛ اما عدهای نیز معتقدند که گواهی ssl بر روی وبسایت، اطلاعات ورودی و خروجی را با الگوریتم بسیار پیچیدهای رمزنگاری کرده و از شنود و دزدیده شدن آنها جلوگیری میکند.
در واقع SSL مانع از مشاهده ترافیک و اطلاعات انتقالی شما توسط افراد دیگر میشود بنابراین وجود آن برای سایتها و اطلاعات حساس و شخصی بسیار لازم است و علاوه بر موارد امنیتی، تأثیرات بسیار خوبی در نتایج سئو و جلب اعتماد کاربران دارد.
نه تنها در سایت بلکه در تمام مواردی که احتمال هک وجود دارد، پسورد خوب و قدرتمند همیشه توصیه شده است. برای انتخاب پسورد خوب سعی کنید حداقل ۸ کاراکتر از حروف، اعداد و نمایهها را انتخاب کنید. برای آنکه بتوانید یک رمز عبور قوی و غیر قابل هک داشته باشید باید سه نکته اصلی را رعایت کنید.
اول اینکه رمز شما باید به اندازه کافی پیچیده و سخت باشد و به صورت تصادفی انتخاب شود.
دوم آنکه رمز عبور باید به اندازه کافی طولانی باشد، معمولاً گفته میشود حداقل ۸ کاراکتر اما هرچقدر تعداد کاراکترها بیشتر باشد خیلی مناسبتر است.
سوم آنکه رمز عبور باید منحصربهفرد باشد و سعی کنید رمز عبوری که برای سایت خودتان انتخاب میکند در هیچ جای دیگری استفاده نکرده باشید.
زمانی که سایتی دارید و چندین نفر بهعنوان مدیر، نویسنده، ویراستار و هر عنوان دیگری به سایت شما دسترسی دارند، باید میزان دسترسی آنها را کاملاً محدود و زمانبندی کنید تا تأمین امنیت سایت مشخص شود. تا زمانی که از میزان تواناییهای یک فرد اطلاع نداشته باشید به او دسترسی نامحدود ندهید. هر تعداد که کاربران بیشتری به سایت شما دسترسی نامحدود داشته باشند احتمال آسیبپذیری و هک شدن سایت نیز بالا میرود.
حتی اگر به صورت صد در صد از امنیت سایت خودتان مطمئن هستید از تمامی اطلاعات خودتان بک آپ بگیرید چرا که در دنیای دیجیتال همه چیز میتواند به صورت آنی از بین برود. بههیچعنوان بک آپ را بر روی سرور ذخیره نکنید چرا که بک آپ ها شامل نسخههای cms اصلاحنشده و انواع افزونهها هستند که برای هکرها مناسبترین موقعیت برای هک را ایجاد میکنند.
با کمک افزونه Backup buddy میتوانید از کل اطلاعات سایت یک نسخه پشتیبان تهیه کنید و در هر زمان که به مشکل برخورد کردید آن را بازگردانی کنید. برخی از ویژگیهای پررنگ این افزونه عبارت است از:
افزونههای امنیتی، با امکانات متعددی که دارند، حافظ امنیت وبسایت شما هستند. البته نه همه آنها بلکه موارد معدودی در خدمت امنیت سایت قرار گرفته و از نفوذ افراد مخرب جلوگیری میکنند. اگر در حفظ امنیت سایت کوشا هستید، حتما یکی از این افزونهها را نصب کنید.
iThemes Security یکی از قویترین افزونههای وردپرس در حوزه امنیت است که با کمک آن میتوانید سایت را در مقابل حملات مختلف هک نجات دهید. بصورت کلی این افزونه عملیات زیر را امکانپذیر میسازد:
علاوه بر تمامی موارد ذکر شده میتوان موارد بسیار زیاد دیگری را نام برد که نقشی انکارناپذیر در تأمین امنیت سایت دارند. از جمله آنها میتوان مجوزهای دسترسی فایل (این مجوزها تعریف میکنند که هرکسی میتواند بر روی فایلها چه کاری انجام دهد)، استفاده از وب سرورهای مطمئن و فایلهای پیکربندیشده سرور (وب سرورهای آپاچی، انجین ایکس و ای ای اس قدرتمندترین وب سرورها هستند)، محافظت سایت در برابر اسپمرها (استفاده از سیستم محافظت CAPTCHA )، استفاده از آنتیویروس و فایروال قدرتمند، بروز، معتبر و اصل، استفاده از سیستم عامل و نرمافزارهای معتبر و اصلی و استفاده از اینترنت امن و مطمئن اشاره کرد که وجود نقص در هر کدام میتوان زمینهساز هک شدن سایت را فراهم کند.
میخواهید بدانید که چرا داشتن وبسایت، کمک به کسب و کار به حساب می آید؟ لزوم و مزایای استفاده از سایت چیست؟ آیا سایت به پیشرفت کسب و کارها کمک خواهد کرد؟ برای پیدا کردن جواب این سؤالات امروز در این مقاله همراه شما هستیم تا ارتباط بین وبسایت و کسب و کار را دریابیم و بتوانیم از آن در جهت پیشرفت خود استفاده کنیم.
تقریباً می توان با اطمینان گفت امروزه و در دنیای دیجیتال و اینترنت، کسب و کارهای بدون سایت، محکوم به شکست هستند. بیزینس های زیادی وجود دارند که هنوز هم با استفاده از روش های سنتی گذشته بازاریابی و فروش خودشان را اداره می کنند اما به نظر شما این کسب و کارها تا چند سال دیگر می توانند همین روال را ادامه دهند؟ شاید بتوان گفت که امروزه اینترنت به اندازه سرمایه برای موفقیت در هر کاری ارزشمند است.
بر اساس آمارهای منتشر شده از دو موسسه معتبر Hootsuite و We Are Social در سال ۲۰۱۸ در حدود ۴٫۲ میلیارد کاربر اینترنت در سراسر دنیا وجود داشته اند. ۳٫۴ میلیارد نفر در دنیا از شبکه های اجتماعی در سال ۲۰۱۸ استفاده کرده اند. حتی یک تجزیه و تحلیل ساده از اعداد و ارقام بیان شده ثابت می کند که تمام افراد در سراسر دنیا تمایل دارند به سمت استفاده از اینترنت بروند و این یعنی هر بیزینسی که در اینترنت فعالیتی نداشته باشد به زودی قافیه را به رقبای خود می بازد. پس هر چه زودتر باید ارتباطی بین وبسایت و کسب و کار ایجاد کنیم .در ادامه مطلب به تعدادی از مزایای استفاده از سایت ها برای پیشرفت کسب و کار اینترنتی اشاره می کنیم.
بازاریابی را می توان یکی از ارکان اصلی موفقیت، سوددهی و ثبات یک کسب و کار دانست. بیزینس هایی که از ابزار بازاریابی بهره نمی برند قطعاً نمی توانند گسترش پیدا کنند و خدمات خود را به مشتریان بیشتری عرضه کنند. استفاده از سایت برای بازاریابی می تواند تقریباً بدون هیچ هزینه ای صورت بگیرد. موتورهای جستجو تقریباً بدون هیچ هزینه ای محصولات و خدمات شما را به تمام افراد در سراسر نقاط دنیا معرفی می کنند. امروزه مردم تمایل دارند قبل از آنکه جنسی را خریداری کنند در اینترنت در مورد آن جستجو کنند و تمامی جوانب آن را ارزیابی کنند بنابراین فاصله معرفی خدمات و محصولات شما با مشتریان فقط یک کلیک ساده است.
سایت ها می توانند تمامی جزئیات محصولات و خدمات شما را با استفاده از تصاویر، متون، فیلم، صوت، انیمیشن و یا هر نوع محتوای جذاب دیگری به مشتریان هدف در هر نقطه ای معرفی کنند. تصور کنید اگر این کارها را به شیوه سنتی انجام بدهید به چند نفر می توانید خدمات خودتان را معرفی کنید و یا چه مقدار باید هزینه کنید؟ وب سایت می تواند بدون محدودیت تعداد و با کمترین هزینه این کار را برای شما انجام دهد. معرفی تمام و کمال جزئیات محصولات و خدمات، می تواند روند برند سازی را به بهترین شیوه به پیش ببرد. تمامی برندهای معتبر جهان که در حال حاضر، فعالیت دارند و خدمات خود را به مشتریان ارائه می کنند، در ابتدا برند خودشان را از طریق سایت ها معرفی کرده اند و همین امر سبب پیشرفت کسب و کار اینترنتی آنها شده است.
یکی از مهمترین ارتباطها بین وبسایت و کسب و کار، افزایش تعداد مشتری است. امروزه تقریباً بیشتر از ۵۰ درصد افراد جوامع مختلف از اینترنت استفاده می کنند و همین امر موجب شده است که محدودیت جغرافیایی برای کسب و کارهایی که دارای وبسایت هستند، بی معنی باشد. با توجه به اینکه وب سایت ها قابلیت لینک دهی به شبکه های اجتماعی را دارند، افراد به راحتی می توانند از طریق شبکه های اجتماعی به وب سایت دسترسی داشته باشند و آمار بازدید از سایت را بالا ببرند. همین امر به مرور زمان باعث افزایش تعداد مشتریان می شود.
داشتن یک وب سایت این امکان را به مدیران کسب و کارهای مختلف می دهد که همیشه و در هر زمان و مکانی در دسترس مشتریان خودشان باشند. این دسترسی راحت و سریع می تواند روابط بین مشتری و صاحبان مشاغل را ارتقا بدهد. مشتریان می توانند محصولات مورد نظر خودشان را به صورت آنلاین بررسی کنند و حتی در صورت داشتن سوال به راحتی به ارائه کننده محصولات و خدمات دسترسی داشته باشند. صاحبان کسب و کار نیز می توانند به صورت آنلاین و از طریق ایمیل، تماس و پیام با مخاطبان خودشان در ارتباط باشند.
با توجه به آنکه امروزه بسیاری از مشتریان به صورت اینترنتی به دنبال محصولات مورد نظر خودشان هستند، داشتن وب سایت می تواند اعتبار بالایی به کسب و کارها و خصوصاً کسب و کارهای کوچک ببخشد. زمانی که وب سایتی وجود نداشته باشد، مشتریان بالقوه برای تهیه محصولات مورد نظرشان به سوی رقبا کشیده خواهد شد. داشتن وب سایت و مشتری های بالقوه می تواند اعتبار زیادی به هر بیزینسی ببخشد و زمانی که تعداد مشتریان ثابت نیز افزایش پیدا کند قطعاً افراد دیگر می توانند به راحتی اعتماد کنند و محصولات مورد نیازشان را از وب سایت شما تهیه کنند. اعتمادسازی مهم ترین عامل آغاز خدمات رسانی به مشتری است. افرادی که به محصولات و خدمات شما اعتماد نداشته باشند، قطعاً هیچ تمایلی برای خرید از شما نخواهند داشت. وب سایت می تواند این اعتماد سازی را در جهت پیشرفت کسب و کار اینترنتی، به بهترین شکل برای شما صورت دهد.
در صورتی که کسب و کارها از وب سایتهای خوب استفاده کنند و به حقوق مشتریهای خود کاملا احترام بگذارند و آن را به خوبی اداره کنند، قطعاً میتوانند خدمات و محصولات خودشان را به تمام دنیا بشناسانند. وب سایتهایی مانند آمازون، ایبی، علی بابا و حتی وب سایتهای داخلی مانند دیجی کالا نمونه بارز جهانی شدن یک کسب و کار از طریق وب سایت هستند که ارتباط زیبای وبسایت و کسب و کار را تداعی میکنند. با توجه به اینکه فعالیت در وب سایتها هیچ حد و مرز و هزینه چندانی ندارد، بنابراین مشتریان از هر نقطهای از دنیا میتوانند خدمات و محصولات شما را مشاهده و از شما خرید کنند.
قطعاً هرکسی که کسب و کاری را شروع می کند، اولین هدف او فروش و سود دهی بیشتر است. وب سایتها می توانند زمینه بازدید مشتریان بیشتری از کسب و کار شما را فراهم کنند. وب سایت می تواند حکم یک فروشگاه مجازی را داشته باشد. فروشگاهی که روزانه ۲ میلیون نفر بازدید کننده دارد قطعاً فروش بالاتری از فروشگاه مشابه با ۱۰۰۰ بازدید کننده دارد و این یعنی درصد سود بالاتر. افزایش فروش باعث می شود که تعداد مشتری ها هم افزایش یابد و هرچقدر تعداد مشتری بیشتر شود، سوددهی و راندمان کار هم بالا میرود.
علاوه بر موارد ذکر شده جهت داشتن وب سایت و ارتباط وبسایت و کسب و کار، می توان مزایایی مانند داشتن مکان نامحدود و گسترده برای نمایش محصولات، صرفه جویی در زمان، صرفه جویی در هزینهها، امکانات بی نظیر، سرمایه گذاری در دراز مدت، ترویج و توسعه بیشتر، آشنایی با نیازهای اصلی و اساسی مشتریان و عدم محدودیت زمانی اشاره کرد که همه این موارد می توانند در پیشرفت و توسعه هر کسب و کاری نقش ویژه ای داشته باشند.
چنانچه تا کنون برای کسب و کار خود، وبسایتی طراحی نکردید و همین الان با مطالعه این مقاله تصمیم گرفتید چنین کاری انجام دهید، نگران نباشید. مثل همیشه همراه شما هستیم. فقط کافیست از هدیه ژاکت برای راهاندازی سایت خود استفاده کنید.
منبع: ژاکت
ما آدمها هنوز هم به کسب و کارهای سنتی اعتقاد بیشتری داریم اما آیا افزایش درآمد با عبور از کسب و کار سنتی امکان پذیر است؟ چرا کسب و کارهای سنتی نیاز دارند که تغییراتی در شیوه کسب درآمد خود داشته باشند؟ بهترین روش برای سوددهی بالاتر آنها چیست؟
کسب درآمد را میتوان هدف اول تمام افراد برای راه اندازی هر کسب و کاری دانست. زمانی که حرفه یا شغلی برای شما سود و درآمدی به همراه نداشته باشد، هرچقدر هم که عاشق آن باشید از انجام و ادامه آن ناامید خواهید شد، مگر آنکه منبع درآمد دیگری داشته باشید. با تغییراتی که در اقتصاد جوامع مختلف در قرن ۲۱ روی داده است، تقریبا می توان گفت تمامی کسب و کارها به دنبال راهی برای افزایش درآمد و ارائه بهتر خدمات و محصولات خود بوده اند. اما چه روشی را انتخاب کردند؟
کسب و کار سنتی که نیازمند مکان ثابتی مانند مغازه، فروشگاه و نمایشگاه باشند قطعا نمی توانند پیشرفتی داشته باشند و از نظر سطح درآمد و درصد فروش تغییر محسوسی نخواهد داشت. اما شیوه نوین کسب و کارهای امروزی که در فضای اینترنت و دیجیتال دنبال می شوند، مزایای بسیار زیادی دارند که یکی از مهم ترین آنها کسب درآمد بیشتر است. پس همینجاست که باید بگوییم یکی از روشهاس مطمئن افزایش درآمد راهاندازی کسب و کار آنلاین است. از جمله دلایل کسب درآمد بیشتر در شیوه نوین می تواند موارد زیر را نام برد.
صاحبان کسب و کار سنتی به دلیل آنکه از یک مکان خاص استفاده می کنند، همیشه مجبور هستند هزینه های زیادی مانند حقوق کارمندان، هزینه انرژی های مختلف و هزینه نگهداری محل کار را پرداخت کنند. برای شناساندن محصولات و خدمات خودشان نیاز دارند تا هزینه های بسیاری زیادی را برای تبلیغات و بازاریابی متحمل شوند. این افراد حتی اگر درآمد بالایی داشته باشند نیز باید مقدار زیادی از آن را صرف موارد ذکر شده بکنند تا بتواند ثبات خودشان را حفظ کنند. در کسب و کارهای نوین و با عبور از کسب و کار سنتی، که از فناوری اطلاعات، اینترنت و فضای دیجیتال بهره می برند تقریبا این هزینه ها را به صفر رسانده اند، زیرا مجبور نیستند چنین هزینه هایی داشته باشند و تبلیغات و بازاریابی خود را کمترین هزینه انجام می دهند و این به معنی درآمد بیشتر است.
مزیت اصلی کسب و کارهای آنلاین و اینترنتی نسبت به کسب و کار سنتی این است که مشتریان در سراسر جهان وجود دارند که می تواند باعث افزایش مشتری های بالقوه (مشتری های خریدار) شود. با توجه به اینکه این نوع بیزینس محدودیت مکان و زمان ندارد و به صورت ۲۴ ساعته می توان بر آن نظارت داشت و با مخاطبان در ارتباط بود، در مدت زمان کمی تعداد مشتری ها رو به افزایش خواهد بود. بر اساس آمارها، ۷۰ درصد از کاربران اینترنت در طول ۹۰ روز، حداقل یک بار به صورت آنلاین خرید انجام می دهند.
فروشگاه های اینترنتی امروزه رقیب اصلی و جدی بازارهای سنتی شده اند و هر روز بیشتر از قبل باعث می شوند که این بازارها به فراموشی سپرده شوند. با توجه به نوع زندگی های امروزی، مشتریان ترجیح می دهند که ترافیک، گرانی سوخت و آلودگی هوا را تحمل نکنند و از همه مهم تر در زمان خودشان صرفه جویی کنند. بنابراین سعی می کنند محصولات مورد نظرشان را به صورت آنلاین و از فروشگاه های اینترنتی تهیه کنند.
تقریبا در تمام دنیا، مردم لوازم مورد نیاز خودشان را از جایی تهیه می کنند که اعتبار بالایی دارد. زمانی که با عبور از کسب و کار سنتی به سمت کسب و کارهای اینترنتی و الکترونیکی می روید، می توانید اعتبار بیشتری پیدا کنید و محصولات و خدمات خودتان را تحت عنوان یک برند معتبر ارائه کنید. زمانی که دارای یکی برند معتبر باشید طبیعتا تعداد مشتری و مخاطبانتان نیز افزایش پیدا میکند و همین امر به افزایش مشتریان بالقوه ختم می شود و در نهایت به سوددهی بالاتر و درآمد بیشتر ختم می شود.
به عنوان مثال در کشور ایران، همه دیجی کالا را به عنوان یک برند معتبر می شناسند و بیشتر افراد ترجیح می دهند که محصولات مورد نیاز خودشان را از این سایت خریداری کنند. مجله Economist در گزارشی ارزش دیجی کالا را به عنوان یک استارتاپ ایرانی، نزدیک به ۱۵۰ میلیون دلار اعلام کرده است. در صورتی که دیجی کالا فعالیت خود را همچنان به شیوه سنتی انجام میداد قطعا امروز دارای چنین برند با ارزشی نبود.
زمانی که صاحبان کسب و کارها از فضای اینترنت و دیجیتال برای عرضه محصولات خودشان استفاده می کنند، می توانند ارتباط موثر و دو طرفه ای با مخاطبان خود داشته باشند و از طریق ایمیل، تلفن و پیام با آنها در تماس باشند. این دسترسی آسان به آنها کمک می کنند که از نیازهای اصلی و اساسی مخاطبان خود آگاه شوند و محصولات خود را به صورت هدفمند تولید و عرضه کنند. زمانی که محصولات اساسی و اصلی مشتری ها را تولید می کنید، قطعا فروش بالاتری خواهید داشت و این به معنی افزایش درآمد توسط کسب و کار آنلاین است.
امروزه بیش از ۱۹۰ کشور در دنیا از اینترنت استفاده میکنند و تقریبا ۵ میلیارد نفر کاربر اینترنت در سراسر دنیا وجود دارد. زمانی که کسب و کار سنتی باشد حتی اگر در بزرگترین شهرهای دنیا قرار داشته باشد، نمی تواند تعداد مشتری های خود را بیشتر از چند هزار نفر بداند. زمانی که به فضای کسب و کار آنلاین وارد شوید، می توانید از پتانسیل اینترنت برای دسترسی به مشتری ها در صدها کشور استفاده کنید و با شناسایی نیازهای آنان، محصولات خود را به فروش برسانید. زمانی که دامنه فعالیت شما اینگونه افزایش می یابد قطعا افزایش درآمد هم خواهید داشت. به عنوان مثال وب سایت آمازون که از این عدم محدودیت جغرافیایی بهترین استفاده را برده است در هر ثانیه ۱۰۸۴ دلار درآمد دارد. این عدد را در دقیقه، ساعت، روز، هفته ، ماه و سال ضرب کنید تا به پتانسیل کسب و کارهای نوین پی ببرید. پس کمی به عبور از کسب و کار سنتی فکر کنید.
با توجه به این که کسب و کار آنلاین، صرفه جویی بسیار زیادی در زمان برای ما به ارمغان می آورند، می توان از این زمان نهایت استفاده را برد. حتی در کسب و کار سنتی هم این امر اثبات شده است که هر چقدر کارهای بیشتر و محصولات بیشتری را به مخاطب عرضه کنیم درآمد بیشتری داریم. زمانی که از شیوه مدرن کسب درآمد استفاده می کنیم به راحتی می توان چندین کسب و کار را با هم اداره کرد. به دلیل آنکه این کسب و کارها هیچگونه محدودیت زمانی و مکانی ندارند، انرژی زیادی را لازم ندارند و به راحتی می توان با راه اندازی کردن یک وب سایت، یک بیزینس متفاوت را اداره کرد. طبیعتا هرچقدر تعداد این بیزینس های آنلاین و اینترنتی بیشتر باشد، سوددهی بالاتری دارد.
اینجاست که باید کمی پا را فراتر گذاشته و جرئت خود را در راستای عبور از کسب و کار سنتی افزایش دهید و قدمی محکم و استوار در راهاندازی کسب و کار اینترنتی خود بردارید. مطمئن باشید اگر درست حرکت کنید به موفقیت خواهید رسید.
اگر همین حالا تصمیم گرفتید کسب و کار آنلاین خود را راهاندازی کنید ما به شما در این مسیر کمک میکنیم. فقط کافیست از هدیه ژاکت برای راهاندازی سایت خود استفاده کنید.
در بخش قبلی این مطلب با عنوان رسم گرافیک با جاوا اسکریپت در مورد برخی مباحث مقدماتی مرتبط با رسم گرافیکهای دو بعدی در جاوا اسکریپت صحبت کردیم. اینک بخش دوم آن را ارائه میکنیم. برای مطالعه بخش قبلی روی لینک زیر کلیک کنید:
تا به اینجا برخی از کاربردهای اولیه بوم 2 بعدی را معرفی کردیم، اما در عمل تا زمانی که بوم را بهروزرسانی یا انیمیت نکردهاید هنوز از قدرت کامل بوم استفاده نکردهاید. در نهایت بوم، تصاویر قابل اسکریپتنویسی عرضه میکند. اگر قصد ندارید چیزی را تغییر دهید، در این صورت شاید بهتر باشد از تصاویر استاتیک استفاده و در وقت خود نیز صرفهجویی کنید.
کار کردن با حلقهها در بوم تا حدی سرگرمکننده است، چون میتوانید دستورهای بوم را درست مانند همه کدهای جاوا اسکریپت درون یک حلقه for اجرا کنید. در ادامه یک مثال ارائه میکنیم.
یک کپی از فایل زیر روی سیستم خود تهیه کنید.
فایل را در ادیتور کد باز کنید.
خط زیر را به انتهای جاوا اسکریپت اضافه کنید. این کد شامل یک متد جدید به نام ()translate است که نقطه مبدأ بوم را جابجا میکند:
ctx.translate(width/2, height/2);4
این امر موجب میشود که مبدأ (0, 0) به مرکز بوم جابجا شود و دیگر در گوشه چپ-بالا نباشد. این وضعیت در موقعیتهای زیادی مانند این مثال مفید است چون میخواهیم طراحی ما نسبت به مرکز بوم ترسیم شود.
سپس کد زیر را به انتهای جاوا اسکریپت اضافه کنید:
در کد فوق ما یک تابع ()degToRad پیادهسازی کردهایم که در مثال مثلث قبلی دیدیم. بک تابع ()a نیز وجود دارد که عددی تصادفی بین کرانهای بالا و پایین تعیینشده بازگشت میدهد، متغیرهای length و moveOffset و یک حلقه for خالی نیز وجود دارند.
ایده این است که چیزی روی بوم و درون حلقه for رسم کنیم و هر بار روی آن تکرار کنیم به طوری که بتوانیم چیز جالبی رسم کنیم. کد زیر را درون حلقه for اضافه کنید:
بدین ترتیب در هر تکرار حلقه کارهای زیر صورت میگیرند:
در نهایت مثال ما باید به شکل زیر درآمده باشد:
در این مرحله شما را تشویق میکنیم که با این مثال بیشتر کار کنید و تغییرات دلخواه خود را در آن ایجاد کنید. برای نمونه میتوانید:
نکته: کد کامل این مثال به صورت زیر است:
مثال حلقهای که در بخش قبل ساختیم جالب بود، اما شما به یک حلقه ثابت نیاز دارید که در همه اپلیکیشنهای جدی بوم مانند بازی یا بصریسازی آنی، به طور مکرر از آن استفاده کنید. اگر بوم را مانند یک فیلم تصور کنیم ما به یک نمایشگر نیاز داریم که در هر فریم بهروزرسانی شود تا نمای بهروز را نشان دهد. نرخ رفرش مناسب 60 فریم بر ثانیه است تا حرکتها به چشم انسان زیبا و روان باشند.
چند تابع جاوا اسکریپت وجود دارند که امکان اجرای مکرر تابعها را چندین بار در طی یک ثانیه فراهم میسازند، اما بهترین آنها برای منظور ما ()window.requestAnimationFrame است. این تابع یک پارامتر میگیرد که نام تابعی است که میخواهید در هر فریم اجرا شود. دفعه بعد که مرورگر آماده بهروزرسانی صفحه باشد، تابع شما فراخوانی میشود. اگر آن تابع بهروزرسانی جدیدی در انیمیشن شما رسم کند، در این صورت بار دیگر درست قبل از انتهای تابع فراخوانی میشود و حلقه انیمیشن همین طور تداوم مییابد. حلقه زمانی متوقف میشود که ()requestAnimationFrame را فراخوانی کنید و یا ()window.cancelAnimationFrame را پس از فراخوانی ()requestAnimationFrame اما قبل از فراخوانی فریم، اجرا کنید.
نکته: فراخوانی ()cancelAnimationFrame از کد اصلی در زمان پایان یافتن کارمان با انیمیشن، ایده خوبی است زیرا مطمئن میشویم که هیچ بهروزرسانی در انتظار اجرا شدن نیست.
مرورگر جزییات پیچیدهای مانند اجرای انیمیشن با سرعت یکنواخت و عدم هدر دادن منابع برای انیمیت چیزهایی که دیده نمیشوند را خود بر عهده میگیرد.
برای این که ببینید طرز کار آن چگونه است، مجدداً نگاهی سریع به مثال توپهای رقصان خود میاندازیم. کد حلقه که همه چیز را در حال حرکت حفظ میکند به صورت زیر است:
ما تابع ()loop را یک بار در انتهای کد برای آغاز چرخه اجرا میکنیم و نخستین فریم انیمیشن را رسم میکنیم. سپس تابع ()loop مسئولیت فراخوانی (requestAnimationFrame(loop را برای اجرای فریم بعدی انیمیشن به طور مکرر بر عهده میگیرد.
توجه کنید که هر فریم به صورت کامل بوم را پاک و همه چیز را از تو رسم میکند. در مورد هر توپی که وجود دارد ما آن را رسم میکنیم، موقعیتش را بهروزرسانی میکنیم و بررسی میکنیم که آیا با توپهای دیگر برخورد دارد یا نه. زمانی که یک گرافیک روی بوم رسم میکنید، هیچ راهی برای دستکاری منفرد گرافیک مانند کاری که روی عناصر DOM انجام میدهیم وجود ندارد. ما نمیتوانیم هیچ توپی را روی بوم جابجا کنیم، زیرا زمانی که رسم شد جزئی از بوم میشود و عنصر یا شیء منفردی نیست که بتوان با آن تعامل داشت. به جای آن میتوان بوم را پاک کرد و دوباره نو رسم کرد و این کار یا از طریق پاک کردن و رسم مجدد همه چیز و یا با داشتن کدی که دقیقاً میداند کدام بخشها باید پاک شوند و تنها آن نواحی مورد نیاز مجدداً روی بوم رسم شوند ممکن است.
بهینهسازی انیمیشن گرافیکها یک بحث کاملاً تخصصی برنامهنویسی است که تکنیکهای هوشمندانه زیادی دارد. با این حال بررسی این موارد خارج از حیطه این مقاله است.
به طور کلی فرایند انیمیشن بوم شامل گامهای زیر است:
نکته: ما در مثال خود به بررسی ()save و ()restore نپرداختیم، اما در مقالات بعدی این سری مطالب آموزشی به آن خواهیم پرداخت.
اینک نوبت به ایجاد یک انیمیشن ساده رسیده است. به این منظور یک کاراکتر از یک بازی جالب را انتخاب کردهایم که روی صفحه راه میرود. یک کپی از فایل زیر روی رایانه خود ایجاد کنید:
آن را در ادیتور کد باز کنید. یک کپی از فایل walk-right.png (+) نیز در همان دایرکتوری ایجاد کنید. در انتهای جاوا اسکریپت خط زیر را اضافه کنید تا یک بار دیگر مختصات مقدار را در میانه بوم قرار دهیم:
اکنون یک شیء HTMLImageElement جدید ایجاد کنید، src آن را تصویری که میخواهید بارگذاری شود تعیین کنید و یک دستگیره رویداد onload اضافه کنید که موجب میشود تابع ()draw زمانی که تصویر بارگذاری میشود اجرا گردد.
اکنون برخی متغیرها اضافه میکنیم تا رد موقعیت تصویری که روی صفحه رسم میشود و تعداد تصاویری که میخواهیم نمایش یابد را داشته باشیم.
در ادامه تصویر spritesheet را توضیح میدهیم. تصویر به صورت زیر است:
این تصویر شامل شش اسپریت است که کل توالی راه رفتن را میسازند و هر یک 102 پیکسل عرض و 148 پیکسل ارتفاع دارند. برای نمایش هر اسپریت به صورت واضح باید از ()drawImage استفاده کنید تا یک تصویر را از اسپریتشیت برش داده و تنها آن بخش را نمایش دهد. این شبیه کاری است که در مورد لوگوی فایرفاکس قبلاً انجام دادیم. مختصات X قطعه باید مضربی از 102 باشد و مختصات Y همواره 0 است. اندازه قطعه همواره 102 در 148 پیکسل است.
اینک یک تابع ()draw خالی در انتهای کد درج میکنیم که آماده کدنویسی است:
بقیه کد در این بخش درون draw() قرار میگیرد. ابتدا خط زیر را اضافه میکنیم که بوم را پاک میکند و آماده رسم هر فریم میشویم. توجه کنید که ما باید گوشه چپ-بالای مستطیل را به صورت -(width/2), -(height/2) تعیین کنیم زیرا مبدأ را قبلاً به صورت width/2, height/2 تعیین کردهایم.
سپس تصویر خود را با استفاده از drawImage رسم میکنیم. ما از نسخه 9 پارامتری آن استفاده میکنیم:
چنان که میبینید:
اینک مقدار sprite را پیش از هر بار رسم عوض میکنیم. بلوک کد زیر را در انتهای تابع ()draw وارد کنید:
ما کل بلوک را در بخش زیر وارد میکنیم:
همچنین از عملگر پیمانه (%) برای بررسی این نکته که مقدار posX میتواند دقیقاً و بدون باقیمانده بر 13 تقسیم شود استفاده میکنیم. اگر چنین باشد با افزایش شماره sprite به اسپریت بعدی میرویم. این کار عملاً به این معنی است که ما تنها sprite را هر 13 فریم یک بار روی صفحه بهروزرسانی میکنیم یا به عبارت دیگر نرخ رفرش ما 5 فریم بر ثانیه است. توجه کنید که ()requestAnimationFrame در صورت امکان با نرخ 60 فریم بر ثانیه فراخوانی میشود. ما عامدانه نرخ فریم را کندتر کردهایم زیرا تنها شش اسپریت داریم که میتوانیم نمایش دهیم و اگر در هر ثانیه 60 بار اسپریت را عوض کنیم، کاراکتر ما بسیار به سرعت راه میرود.
درون بلوک بیرونی از یک گزاره if…else استفاده میکنیم تا بررسی کنیم آیا مقدار sprite روی 5 قرار دارد یا نه. اگر آخرین اسپریت را نمایش دهیم sprite را روی 0 ریست میکنیم و در غیر این صورت آن را 1 واحد افزایش میدهیم.
سپس باید شیوه تغییر مقدار posX را در هر فریم بررسی کنیم. بلوک کد زیر را درست زیر کد قبلی اضافه کنید:
ما از یک گزاره if … else دیگر استفاده میکنیم تا ببینیم آیا مقدار posX بزرگتر از width/2 میشود یا نه. این بدان معنی است که کاراکتر ما از گوشه راست صفحه به بیرون میرود. اگر چنین باشد باید موقعیتی را محاسبه کنیم که کاراکتر را در سمت چپ، بخش چپ صفحه قرار میدهد و سپس posX را برابر با نزدیکترین ضریب 13 آن عدد قرار دهیم. این مقدار باید ضریبی از 13 باشد چون در غیر این صورت بلوک کد قبلی کار نمیکند، چون posX هرگز برابر با ضریب 13 نخواهد بود.
اگر کاراکتر انیمیشن هنوز از لبه صفحه بیرون نرفته است مقدار posX را به میزان 2 واحد افزایش میدهیم. بدین ترتیب در هر بار رسم، کمی به سمت راست حرکت میکند.
در نهایت باید حلقه انیمیشن را با فراخوانی requestAnimationFrame() در انتهای تابع draw() به اجرا درآوریم:
بدین ترتیب و در نهایت مثال ما باید چیزی مانند زیر باشد:
نکته: کد نهایی این مثال به صورت زیر است:
به عنوان آخرین مثال این نوشته، یک اپلیکیشن بسیار ساده برای رسم معرفی میکنیم تا شیوه ترکیب حلقه انیمیشن را ورودی کاربر را نمایش دهیم. ما مراحل ساخت این مثال را مورد بررسی قرار نمیدهیم و صرفاً به بررسی بخشهای جالبتر کد میپردازیم.
کد این مثال به صورت زیر است:
در ادامه این مثال را در حالت اجرایی مشاهده میکنید:
در ادامه به بررسی بخشهای جالبتر کد میپردازیم. قبل از هر چیز رد مختصات X و Y ماوس و این که کلید ماوس کلیک شده یا نه را با متغیرهای curX، curY و pressed حفظ میکنیم. زمانی که ماوس حرکت میکند یک مجموعه تابع به صورت دستگیره رویداد onmousemove اجرا میکنیم که مقادیر فعلی X و Y را دریافت میکند. همچنین از دستگیرههای رویداد onmousedown و onmouseup برای تغییر مقدار pressed به true در زمانی که دکمه ماوس زده میشود استفاده میکنیم و زمانی که کلیدش رها شود آن را مجدداً به حالت false تعیین میکنیم.
زمانی که دکمه Clear canvas فشرده شود یک تابع ساده اجرا میکنیم که کل بوم را پاک میکند و به حالتی که قبلاً دیدیم درمیآید:
حلقه رسم کاملاً ساده است، اگر مقدار pressed به صورت true باشد، یک دایره رسم میکنیم که دارای استایل fill برابر با مقداری است که از انتخابگر رنگ به دست آمده است و شعاع نیز بر برابر با مقداری است که در ورودی range ارائه شده است.
نکته: انواع <input> به صورت range و color تقریباً به خوبی روی همه مرورگرها پشتیبانی میشوند و تنها استثنا نسخههای زیر 10 اینترنت اکسپلورر است. البته سافاری نیز هنوز از color پشتیبانی نمیکند. اگر مرورگر شما از این ورودیها پشتیبانی نمیکند به صورت فیلدهای متنی ساده fall back میشوند و میتوانید مقادیر موردنظر رنگ/شماره را خودتان وارد کنید.
اینک زمان آن رسیده است که بوم 2 بعدی را کنار بگذاریم و یک بررسی اجمالی در مورد بوم 3 بعدی داشته باشیم. محتوای بوم 3 بعدی با استفاده از WebGL API تعیین میشود که یک API کاملاً جدا از API بوم 2 بعدی است، گرچه هر دو روی عنصر <canvas> رندر میشوند.
WebGL بر مبنای زبان برنامهنویسی گرافیک OpenGL طراحی شده است و امکان ارتباط مستقیم با GPU رایانه را به دست میدهد. در این حالت، نوشتن WebGL خام به زبانهای سطح پایین مانند ++C نزدیکتر است تا جاوا اسکریپت و گرچه کاملاً پیچیده، اما بسیار قدرتمند است.
اغلب افراد کد گرافیکی 3 بعدی را به دلیل پیچیدگیاش با استفاده از یک کتابخانه جاوا اسکریپت شخص ثالث مانند Three.js، PlayCanvas یا Babylon.js انجام میدهند. اغلب آنها طرز کار مشابهی دارند و کارکردی برای ایجاد شکلهای ابتدایی و سفارشی، موقعیتیابی دوربینهای تماشا و ابزارهای نورپردازی، تبدیل سطوح به بافت و موارد دیگر ارائه میکنند. این کتابخانهها WebGL را برای شما مدیریت میکنند و امکان کار در سطوح بالاتر را فراهم میسازند.
استفاده از یکی از این ابزارها باعث میشود که API جدیدی را بیاموزید، ما بسیار سادهتر از کدنویسی WebGL خام است.
در ادامه به مثال سادهای از شیوه ایجاد یک چیز جدید در کتابخانه WebGL میپردازیم. ما کتابخانه Three.js را انتخاب میکنیم، چون یکی از محبوبترین کتابخانهها محسوب میشود. در این راهنما یک مکعب چرخان 3 بعدی که قبلاً در ابتدای مطلب دیدیم را ایجاد میکنیم.
در آغاز کار یک کپی از فایل زیر در یک پوشه روی سیستم خود ایجاد کنید و سپس تصویر metal003.png (+) را دانلود کرده در همان پوشه قرار دهید. این همان تصویری است که به عنوان بافت سطح برای مکعب استفاده میکنیم.
سپس فایل index.html را در ادیتور کد خود باز کنید تا ببینید که دو عنصر <script> دارد. عنصر اول برای الصاق three.min.js به صفحه و دومی برای الصاق فایل main.js به صفحه استفاده میشود. ما باید کتابخانه three.min.js (+) را دانلود کرده و در همان دایرکتوری قبلی ذخیره کنیم.
اینک trhee.js به صفحه الصاق یافته است و میتوانیم شروع به نوشتن کد جاوا اسکریپتی بکنیم که از آن در min.js استفاده میکند. کار خود را با ایجاد یک صحنه جدید آغاز میکنیم. کد زیر را به فایل main.js اضافه کنید:
سازنده ()Scene یک صحنه جدید ایجاد میکند که نماینده کل دنیای 3 بعدی است که میخواهیم نمایش دهیم.
سپس باید یک camera داشته باشیم تا بتوانیم صحنه خود را ببینیم. دوربین در فرهنگ اصلاحات طراحی 3 بعدی، نماینده موقعیت بیننده در دنیا است. برای ایجاد یک دوربین باید خطوط زیر را به صفحه اضافه کنید:
سازنده ()PerspectiveCamera چهار آرگومان میگیرد:
همچنین موقعیت دوربین را در مسافت 5 واحد از محور Z تعیین میکنیم که مانند CSS به سمت خارج از صفحه یعنی به سمت شما (بیننده) است.
عامل ضروری سوم رندر کننده است. این شیئی است که یک صحنه مفروض را چنان که توسط دوربین مفروض دیده میشود، رندر میکند. ما با استفاده از سازنده ()WebGLRenderer یک رندرکننده میسازیم، اما در حال حاضر از آن استفاده نمیکنیم. خطوط زیر را به کد قبلی اضافه کنید:
خط اول یک رندرکننده جدید میسازد، خط دوم اندازهای را تعیین میکند که رندرکننده با آن نمای دوربین را رسم خواهد کرد و خط سوم عنصر <canvas> ایجاد شده از سوی رندرکننده را به <body> سند الحاق میکند. اینک هر چیزی که رندرکننده رسم کند روی پنجره ما رسم میشود.
سپس میخواهیم مکعبی ایجاد کنی که روی بوم نمایش پیدا کند. به این منظور بلوک کد زیر را به انتهای جاوا اسکریپت موجود اضافه کنید:
کارهای زیادی در این کد انجام مییابد که در ادامه آنها را توضیح میدهیم:
ابتدا یک متغیر سراسری cube ایجاد میکنیم تا بتوانیم از هر جایی در کد به مکعب خود دسترسی داشته باشیم.
سپس یک شیء جدید TextureLoader ایجاد میکنیم و ()load را نیز روی آن فراخوانی میکنیم. ()load در این مثال دو پارامتر میگیرد (گرچه میتواند موارد بیشتری بگیرد) که یکی بافتی است که میخواهیم بارگذاری شود (فایل PNG) و دیگری تابعی است که هنگام بارگذاری شدن بافت اجرا خواهد شد.
درون این تابع از مشخصههای شیء txture برای تعیین این که میخواهیم یک تکرار 2 در 2 از تصویر پیرامون همه اضلاع مکعب را بپوشاند استفاده میکنیم. سپس یک شیء BoxGeometry و یک شیء جدید MeshLambertMaterial میسازیم و آنها را کنار یکدیگر قرار میدهیم تا یک mesh برای مکعب ایجاد شود. یک شیء به طور معمول نیازمند یک هندسه (شکل کلی) و یک جنس (نوع سطح) است.
در نهایت مکعب خود را به صحنه اضافه میکنیم و سپس تابع ()draw را فرامیخوانیم تا شروع به انیمیشن کند.
پیش از آن که ()draw را تعریف کنیم باید چند نور به صحنه اضافه کنیم تا همه چیز روشنتر شود. بنابراین بلوک زیر را به صفحه اضافه میکنیم:
شیء AmbientLight نوعی از نور نرم است که کل صحنه را کمی روشن میکند مانند آفتاب که موجب روشنایی زمین میشود. در سوی دیگر شیء AmbientLight یک شعاع نور جهتدار است که بیشتر شبیه نور چراغ قوه است.
در نهایت تابع ()draw را به انتهای کد میافزاییم:
این کد کاملاً گویا است. در هر فریم، مکعب را کمی روی محورهای X و Y خود میچرخانیم و سپس صحنه را چنان که از سوی دوربین دیده میشود رندر میکنیم و در نهایت ()requestAnimationFrame را فرامیخوانیم تا رسم فریم بعدی را زمانبندی کند.
در ادامهی توانید وضعیت نهایی مثالی که ساختیم را ملاحظه کنید:
نکته: کد کامل مثال فوق به صورت زیر است. اگر هر نوع خطایی داشتید میتوانید کد خودتان را با مثال زیر تطبیق دهید:
بدین ترتیب اینک با مطالعه این مطلب نسبتاً بلند ایده مفیدی از مبانی برنامهنویسی گرافیکی با استفاده از Canvas و WebGL کسب کردهاید و میدانید که چه کارهایی میتوانید با API انجام دهید. همچنین ایده مناسبی از این که برای کسب اطلاعات بیشتر باید چه کار بکنید دارید.
منبعک فرادرس