fix: lỗi hiển thị ở frontend
This commit is contained in:
@@ -1,24 +1,47 @@
|
||||
const loadScript = (src: string): Promise<void> => {
|
||||
const loadScript = (src: string, fallbackSrc?: string): Promise<void> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (document.querySelector(`script[src="${src}"]`)) {
|
||||
if (
|
||||
document.querySelector(`script[src="${src}"]`) ||
|
||||
(fallbackSrc && document.querySelector(`script[src="${fallbackSrc}"]`))
|
||||
) {
|
||||
resolve();
|
||||
return;
|
||||
}
|
||||
const script = document.createElement('script');
|
||||
script.src = src;
|
||||
script.onload = () => resolve();
|
||||
script.onerror = () => reject(new Error(`Failed to load script ${src}`));
|
||||
script.onerror = () => {
|
||||
if (fallbackSrc) {
|
||||
console.warn(`Failed to load script ${src}. Trying fallback: ${fallbackSrc}`);
|
||||
const fallbackScript = document.createElement('script');
|
||||
fallbackScript.src = fallbackSrc;
|
||||
fallbackScript.onload = () => resolve();
|
||||
fallbackScript.onerror = () => reject(new Error(`Failed to load script ${fallbackSrc}`));
|
||||
document.head.appendChild(fallbackScript);
|
||||
} else {
|
||||
reject(new Error(`Failed to load script ${src}`));
|
||||
}
|
||||
};
|
||||
document.head.appendChild(script);
|
||||
});
|
||||
};
|
||||
|
||||
const loadModerationLibraries = async () => {
|
||||
// Load TensorFlow first
|
||||
await loadScript('https://cdn.jsdelivr.net/npm/@tensorflow/tfjs');
|
||||
// Load models after tfjs is available
|
||||
// Load TensorFlow first with fallback
|
||||
await loadScript(
|
||||
'https://cdn.jsdelivr.net/npm/@tensorflow/tfjs',
|
||||
'https://unpkg.com/@tensorflow/tfjs'
|
||||
);
|
||||
// Load models after tfjs is available, with fallbacks
|
||||
await Promise.all([
|
||||
loadScript('https://cdn.jsdelivr.net/npm/@tensorflow-models/blazeface'),
|
||||
loadScript('https://cdn.jsdelivr.net/npm/nsfwjs@2.4.0/dist/bundle.js')
|
||||
loadScript(
|
||||
'https://cdn.jsdelivr.net/npm/@tensorflow-models/blazeface',
|
||||
'https://unpkg.com/@tensorflow-models/blazeface'
|
||||
),
|
||||
loadScript(
|
||||
'https://cdn.jsdelivr.net/npm/nsfwjs@2.4.0/dist/bundle.js',
|
||||
'https://unpkg.com/nsfwjs@2.4.0/dist/bundle.js'
|
||||
)
|
||||
]);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user