私は外部から読み込んでいる画像を持っています。私は自分のsvg要素に何度も追加したいと思います。Snap.svgに外部イメージを複数回読み込む:リクエストをキャッシュする方法?
現在、mySnap.load(path)...
を呼び出すと、画像のAJAXリクエストが行われます。 (jsFiddleの例hereを参照して、ネットワークのタブを見てください)。これはブラウザによってキャッシュされている場合とキャッシュされていない場合がありますが、リクエストしないようにしたいと思います。
私は自分のキャッシュを展開しようとしたが、それはうまくいきませんでした:
let cache = {}
let load = function(path, callback) {
if (cache[path]) {
callback(cache[path])
} else {
Snap.load(path, (img) => {
cache[path] = img
callback(img)
})
}
}
問題は、私が返された値を使用しようとした二回目は、それがされていたということでした例を参照してください。話をするために "空になった"。私はまだ文書断片を持っていましたが、内容はありませんでした。私はこれが埋め込まれているときにスナップライブラリによって操作されたオブジェクトを指しているからだと仮定しています。
戻されたオブジェクトをキャッシュするにはどうすればよいでしょうか? Fragment
には、のように、.clone()
の機能がありません。
追加してクローンしますか? – Ian
また、defsステートメントに負荷の一部を格納し、後で 'use'要素で参照することもできますか? – Ian