Как безопасно загрузить сценарий блокировки в голову без риска медленногоHtml

Программисты Html
Ответить
Anonymous
 Как безопасно загрузить сценарий блокировки в голову без риска медленного

Сообщение Anonymous »

Я сделал немного программного обеспечения для тестирования A/B, которое требует, чтобы владельцам веб -сайтов приходилось разместить сценарий в главе их веб -сайтов. Этот скрипт должен заблокировать страницу от загрузки до тех пор, пока он не завершит выполнение, поскольку ему необходимо получить информацию, необходимую до того, как тело будет отображаться (например, стили CSS, JS), следовательно, он не может отложить. Я беспокоюсь о том, что если мой сервер не работает, медленно или перегружен, что он не позволят загружать веб -сайты владельцев веб -сайтов.
Как я могу преодолеть это, или это невозможно? Как это в главе их сайтов. Код встраивания: < /p>

< /code>
Сценарий в самом SRC также имеет асинхронные вызовы, которые также могут занять время, такие как запросы DB. это также не должно быть разрешено занимать слишком много времени. Т.е. Скрипт должен: < /p>
  • либо загружать, так и впрыскивать (например, стили, JS, все, что связано с A /B, которое влияет на то, как выглядит страница), прежде чем тело начнет загружаться; < /li>
    или нет во всех < /li>
    < /ul>
    Я могу изменить код, и я могу изменить код. Атрибут (т.е. rack.ts), если это необходимо. < /p>
    ai, по -видимому, предлагает либо: < /p>

    Условие гонки между (1) браузером, загружающим SRC и (2) сам скрипт, завершающий по сравнению с (3) времени для 1 и 2; или < /li>
    Асинхронный атрибут скрипта, который проверяет, не начал ли готовый участок загружать тело, прежде чем пытаться что -либо вставить; Он либо вставляет все, либо ничего не делает
  • Разговор AI: https://chatgpt.com/share/6834c11e-7260 ... 2439bba220
    ai Разговор 2: https://chatgpt.com/share/6834CCF2-CE40 ... 2BB317312E
Я в порядке с сценарием, иногда не внедряя что-либо, если это означает, что веб-сайты веб-сайтов являются безопасными, но я хочу, чтобы я был в целом. Спасибо.// Short demo: A/B test tracking script

(async () => {
const API_URL = 'https://api.example.com';
const wid = 'some-website-uuid';

// Inject loading styles before body loads
const injectLoadingStyles = () => {
const style = document.createElement('style');
style.textContent = '.tracking-loading { background: #fff; }';
document.head.appendChild(style);
document.body?.classList.add('tracking-loading');
};

// Fetch whether user has test sessions remaining (async call)
const getHasTestSessionsRemaining = async () => {
const response = await fetch(`${API_URL}/tracking/has-test-sessions-remaining/${wid}`);
const data = await response.json();
return data.hasTestSessionsRemaining;
};

// Main logic
const initialise = async () => {
injectLoadingStyles();
const hasSessions = await getHasTestSessionsRemaining();
if (!hasSessions) {
console.log('No test sessions remaining.');
return;
}
// ...more logic, more API calls, etc also included (e.g., inject variant CSS/JS, track events)...
console.log('Tracking initialised!');
};

await initialise();
})();


Подробнее здесь: https://stackoverflow.com/questions/796 ... being-slow
Ответить

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

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

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

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

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