akikuno / TSUMUGI

Web tool for visualizing phenotype-similarity gene networks
https://www.md.tsukuba.ac.jp/LabAnimalResCNT/TSUMUGI/
MIT License
2 stars 0 forks source link

XMLHttpRequestをfetch・async/awaitに書き換える #28

Open akikuno opened 5 days ago

akikuno commented 5 days ago

JSONを得るのにXMLHttpRequestを使っているが、非同期処理ができるfetch・async/awaitに書き換える いまでも困ってはいないが、いつかより大きいデータを扱うようになったときの処理速度を考慮すると、早めに対応しておくのがベターかと。

以下のHTMLとJSを参考にする

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Fetch Elements Test</title>
</head>

<body>
    <h1>Fetch Elements Test</h1>
    <p>consoleを確認</p>

    <!-- 外部モジュールスクリプトの読み込み -->
    <script type="module" src="./tmp_script.js"></script>
</body>

</html>
let elements = null;

async function fetchElements() {
    if (elements) return elements;
    try {
        const response = await fetch("https://gist.githubusercontent.com/akikuno/831ec21615501cc7bd1d381c5e56ebd2/raw/a5e224c8ef258a4329708d7070986aaf831c0a05/gist_Rab10.json");
        if (!response.ok) throw new Error("Network response was not ok");
        elements = await response.json();
        return elements;
    } catch (error) {
        console.error("Fetch error:", error);
        return null;
    }
}

elements = await fetchElements();
console.log(elements);
akikuno commented 4 days ago

XHRは非推奨ということなので、大人しくfetchに切り替えます😇

image