← بازگشت به صفحه اصلی

مشکل قبلی

Najva script بلافاصله بعد از load شدن صفحه، notification permission درخواست می‌کرد که:

راه حل پیاده‌سازی شده

1. Load بر اساس User Interaction

Najva script حالا فقط بعد از اولین تعامل کاربر load می‌شود:

2. استثنا برای Permission های موجود

اگر کاربر قبلاً notification permission داده باشد:

3. تنظیمات .env

می‌توانید Najva را کاملاً غیرفعال کنید:

# Disable Najva in development
ENABLE_NAJVA=false

# Or keep it enabled (default)
ENABLE_NAJVA=true

Najva در حالت debug mode هم خودکار غیرفعال می‌شود:

APP_DEBUG=true  # Najva won't load

کد پیاده‌سازی

// Check if notification permission already granted
if ('Notification' in window && Notification.permission === 'granted') {
    // Load immediately
    loadNajvaScript();
} else {
    // Wait for user interaction
    document.addEventListener('scroll', loadNajvaScript, {passive: true, once: true});
    document.addEventListener('click', loadNajvaScript, {once: true});
    document.addEventListener('touchstart', loadNajvaScript, {passive: true, once: true});
}

مزایا

بهتر برای SEO: PageSpeed Insights دیگر خطا نمی‌دهد ✅ تجربه کاربری بهتر: Permission بعد از تعامل درخواست می‌شود ✅ Performance بهتر: Script تا زمان نیاز load نمی‌شود ✅ قابل کنترل: می‌توان از طریق .env غیرفعال کرد

یادداشت‌ها

تست

برای تست:

  1. صفحه را باز کنید (Najva load نمی‌شود)
  2. Console DevTools را باز کنید
  3. صفحه را scroll کنید یا کلیک کنید
  4. بایدببینید که Najva script load شده است

یا اگر قبلاً permission داده‌اید، بلافاصله load می‌شود.