فارسی
باز کردن در Telegram

پست از sendBeacon جاوااسکریپت چی می‌دونید؟

12 ژوئیه 2024
𔓙
𔓙
از sendBeacon جاوااسکریپت چی می‌دونید؟ فرض کنید می‌خوایم تعداد دقایقی که کاربر توی صفحهٔ مد نظر ما گذرونده رو به سرور بفرستیم. برای این کار، اطلاعات رو باید درست لحظه‌ای که کاربر به صفحه دیگه هدایت میشه و یا تب رو می‌بنده انجام بدیم. مشکل استفاده از ajax اینه که بعد از بسته شدن صفحه، مرورگر ممکنه عملیات ای‌جکس رو اجرا نکنه و بنابراین اطلاعاتی به سرور ارسال نمیشه. راه حلی که قبل از معرفی sendBeacon وجود داشت، ارسال اطلاعات بصورت Synchronous (همگام) درست قبل از ترک کردن کاربر بود که باعث میشد صفحه برای لحظاتی قفل (بلاک) بشه که در نتیجه باعث آسیب تجربهٔ کاربر میشد. همین دلایل بود که توسعه‌دهنده‌ها رو به فکر یک API قابل اطمینان‌تر انداخت ‏sendBeacon چیه؟ 😄 ‏sendBeacon متدیه که از آبجکت سراسری navigator که یک Web API هست، قابل دسترسه و هدف از معرفی اون، ارسال اطلاعات آماری (Analytics) و کم‌حجم به سرور هست. نحوهٔ استفاده از اون به صورت زیر هست: navigator.sendBeacon(url); navigator.sendBeacon(url, data); این متد، اطلاعات رو همیشه با متد POST و بصورت Asynchronous (غیر همگام) به سرور می‌فرسته. نکتهٔ مهم اینه که این متد اطلاعاتی از سرور برنمی‌گردونه. خروجی اون یک Boolean هست و در صورتی true برمی‌گردونه که مرورگر بتونه اطلاعات رو بفرسته. در غیر این صورت false. پس زمانی که به اطلاعات بازگشتی از سرور احتیاج داریم، sendBeacon گزینه مناسبی نیست. چطوری از sendBeacon استفاده کنیم؟ 🦦 فرض کنید می‌خوایم درست قبل از ترک کردن صفحه توسط کاربر، اطلاعاتی رو به سرور بفرستیم. برای این کار ابتدا باید به رویداد visibilitychange گوش بدیم: document.addEventListener('visibilitychange', () => { }); این رویداد زمانی اجرا میشه که صفحه قابل مشاهده باشه (visible) یا نباشه (hidden). حالا باید تصمیم بگیریم که اگه وضعیت صفحه hidden بود، بیایم و اطلاعات مد نظر رو به سرور پاس بدیم: document.addEventListener('visibilitychange', () => { if (document.visibilityState === 'hidden') { const data = JSON.stringify({ spent: 3600 }); navigator.sendBeacon('/log', data); } }); به طور کلی این API کمک می‌کنه تا اطلاعات رو به صورت غیر همگام به سرور ارسال کنیم. از برتری‌های مهم sendBeacon نسبت به ajax اینه که اگه قصد دارید از اون برای ارسال اطلاعاتمون به سرور، درست قبل از ترک شدن صفحه توسط کاربر استفاده کنیم، مرورگر به ما این اطمینان رو میده که حتماً اون رو اجرا کنه. در صورتی که همونطور که برای ajax گفتیم، مرورگر ممکنه قبل از ترک شدن صفحه، تصمیم بگیره که عملیات ajax رو اجرا نکنه. #sendBeacon @CodeModule
21 · 1.2K ·

در همان حوالی فید

𔓙𔓙با Minify کم حجم جلو برو 🦦 ‏Minify یک پکیج قدرتمند برای ساده کردن کدهای Html ،Css و جاوااسکریپت هست. Minify اندازه فایل‌ها رو کاهش میده و زمان بارگذاری سریع‌تر Mmahdiبا ‏Cheerio هر سایتی که میخوای scrap کن! 🐙 اگه با Node.js کار میکنید و به ابزاری برای دستکاری و تجزیه HTML نیاز دارید، پکیج Cheerio راه حل شماست. Cheerio یک API
این پیام
𔓙𔓙با این سایت یه آمار کلی از گیتهابت در بیار 🌪 سایت githubprofileviewer، یک سایت خلاقانه و کاربردیه که شما میتونید با وارد کردن آیدی اکانتتون یا هر اکانت دیگه ای،𔓙𔓙عکس
CCode Module | کد ماژولCode Module | کد ماژول@CodeModule · کانال · فناوری
2 180مشترک594میانگین دسترسی پست
فید انجمن باز کردن در Telegram

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما