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>