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»