zu unterbinden und zu präfizieren. Es funktioniert perfekt auf Android, aber es ist äußerst langsam für iOS
zum Zwecke des Debuggens Ich habe viele Protokolle hinzugefügt. Holen Sie sich die Idee. Hier ist mein Code < /p>
import { Image } from "expo-image";
import { useEffect, useState } from "react";
import { assetUrls } from "../Constants/assetConstants";
import { Platform } from "react-native";
export const usePreloadImages = () => {
const [loaded, setLoaded] = useState(false);
useEffect(() => {
let cancelled = false;
const preload = async () => {
console.log("preloading mate");
const start = Date.now();
try {
const results = await Promise.all(
assetUrls.map(async (url) => {
console.log("
try {
await Image.prefetch(url);
console.log("
} catch (err) {
console.log("
}
})
);
const end = Date.now();
console.log("end at:", end);
console.log(`
console.log("Prefetch complete verifying cache");
// await debugImageCache(assetUrls);
if (!cancelled) setLoaded(true);
} catch (err) {
console.error("
if (!cancelled) setLoaded(true);
}
};
preload();
return () => {
cancelled = true;
};
}, []);
return loaded;
};
< /code>
und zum Vergleich von Zeiten habe ich dieses < /p>
Android Prefetch vollständig! Zeit benötigt: 2052 ms
< /code>
iOS Prefetch Complet! Zeitaufnahme: 31636 ms
Warum dauert der gleiche Code fast 150% mehr Zeit und was zu tun ist, um diese