Supabase RPC вызовет прилавки или не стрельба, когда открыты несколько вкладокJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Supabase RPC вызовет прилавки или не стрельба, когда открыты несколько вкладок

Сообщение Anonymous »

Я строю приложение Next.js с использованием Supabase (Auth + Postgres RPC). Я заметил, что когда открыты несколько вкладок приложения, RPC вызывает периодически не стрелять в вкладку сети, а страницы застряли на погрузчиках скелета. или освещение страницы, когда открытые вкладки приложений не показывают сетевые запросы.

[*] Некоторые запросы сидят в «ожидании» на неопределенный срок на вкладке Devtools Network и ведение консоли, другие вообще не отображаются. /> < /li>
Закрытие других вкладок разблокирует последнюю вкладку «Застревание», и все RPC начинают работать. />
Добавление обширного ведения журнала подтвердило, что функции загрузки данных и состояние ожидают RPC, которые никогда не начинались. Причина пользовательского интерфейса остается на погрузчиках скелета. Это исправило проблему даже с 20+ вкладками. < /P>

Код: Выделить всё

// Tab coordination to prevent auth conflicts
const TAB_ID = `active-auth-tab-${Math.random().toString(36).substring(7)}`;
const STORAGE_KEY = "supabase_auth_tab_coordination";

// Broadcast to other tabs that this tab is active
const broadcastTabActivity = () => {
if (typeof window !== "undefined") {
localStorage.setItem(STORAGE_KEY, TAB_ID);
}
};

// Check if this tab should handle auth
const shouldHandleAuth = (): boolean => {
if (typeof window === "undefined") return true;

const activeTabId = localStorage.getItem(STORAGE_KEY);
return activeTabId === TAB_ID || !activeTabId;
};
< /code>
< /li>
  затем используется в использовании, как ниже: < /p>
useEffect(() => {
// Always restore session on page load, regardless of tab coordination
refreshUser().finally(() => setLoading(false));

// Only handle auth state changes in the active tab
if (!shouldHandleAuth()) {
return;
}

// Broadcast that this tab is active
broadcastTabActivity();

// other auth logics
}, []);
После очистки и удаления очереди переходит на проблему. /> Вопросы: < /h3>

Ожидается ли это поведение из-за некоторых ограничений подключения для браузера для теоригинов, когда несколько вкладок делают одновременные запросы Supabase RPC? Я попробовал следующее: < /p>

Ограничитель за табу и координацию Cross-Tab (BroadcastChannel, Navigator.locks) для CAP Global Adurrent запросов? [Работает] < /p>
< /li>
Пакет RPC, чтобы уменьшить поездку в круглые пути? [Не работал] < /p>
< /li>
< /ul>
< /li>
Есть ли способ надежно выявлять, когда запросы блокируются ограничениями объединения соединений, чтобы мы могли адаптировать альтернативу? Или есть какое-либо специфичное для супабазы ​​руководство для клиентов с высокой точкой с высокой точкой с высокой точки зрения? Любые ссылки на ограничения браузера, поведение клиентов Supabase под одновременным или реальным миром будут оценены.


Подробнее здесь: https://stackoverflow.com/questions/797 ... s-are-open
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»