Перейти к основному содержимому

Best Practices подключения SDK

1. Использование через NPM (рекомендуется)

Установка через пакетный менеджер — наиболее надёжный способ, так как SDK становится частью вашего бандла:

npm install expf-sigma.js
import Sigma from 'expf-sigma.js';

const sigma = new Sigma();
sigma.init({ token: '<TOKEN>', userData: { userId: 'id' } });

Преимущества NPM-подключения:

  • Нет зависимости от CDN при загрузке страницы
  • SDK включён в ваш бандл и не требует дополнительных запросов
  • Версия SDK зафиксирована в package.json
  • Легче контролировать обновления

к сведению

Ниже пример подключения через CDN — как Sigma, так и скрипта инициализации веб-редактора

2. Асинхронная загрузка SDK по CDN (рекомендуемый способ)

Используйте асинхронную загрузку скрипта с обработкой ошибок. Это гарантирует, что при недоступности CDN ваш сайт продолжит работать:

<script>
window.sigmaLoaded = false;

(function() {
var script = document.createElement('script');
script.src = 'https://api.expf.ru/sigma.min.js';
script.async = true;

script.onload = function() {
window.sigmaLoaded = true;
console.log('Sigma SDK успешно загружен');
};

script.onerror = function() {
window.sigmaLoaded = false;
// Sigma CDN unavailable
};

document.head.appendChild(script);
})();
</script>

3. Альтернативный CDN с цепочкой

<script>
function loadSigmaWithFallback(urls) {
var currentIndex = 0;

function tryLoad(index) {
if (index >= urls.length) {
window.sigmaLoaded = false;
loadDefaultContent();
return;
}

var script = document.createElement('script');
script.src = urls[index];
script.async = true;

script.onload = function() {
window.sigmaLoaded = true;
};

script.onerror = function() {
tryLoad(index + 1);
};

document.head.appendChild(script);
}

tryLoad(0);
}

// Пробуем загрузить из нескольких источников
loadSigmaWithFallback([
'https://api.expf.ru/sigma.min.js',
'https://cdn.jsdelivr.net/npm/expf-sigma.js'
]);
</script>