Rumah hujung hadapan web tutorial js javascript客户端解决方案 缓存提供程序_javascript技巧

javascript客户端解决方案 缓存提供程序_javascript技巧

May 16, 2016 pm 06:23 PM
program cache

相信每一个开发者都知道缓存的重要性。从头至尾有缓存的后台(memcached,xcache等。) 来减轻db的压力。对内容分发网络(CDN)缓存中希望你的浏览器缓存那些不止一次的加载资源。当然, 有客户端缓存,所以你不要重复昂贵的操作(即使是算法或大量的运算)。

这是介绍的是一个不错的javascript的方面的客户端解决方案,可选配支持HTML5本地存储器.

Starting Simple

复制代码 代码如下:

function CacheProvider() {
// values will be stored here
this._cache = {};
}Feature detect on local storage
try {
CacheProvider.hasLocalStorage = ('localStorage' in window) && window['localStorage'] !== null;
} catch (ex) {
CacheProvider.hasLocalStorage = false;
}

这里使用try catch的主要原因是 尽管firefox支持该属性,但是需要在about:config中设置并开启,否则将会报错。所以一个简单的if else不能满足需求。

下面我们将增加对象本地存储机制的支持。这个技术是借鉴了Christopher Blizzard的一篇不错的文章 Saving data with local storage – for which those who didn't know, you can only store string's into local storage. Thus we have this…

in / out JSON parsing
复制代码 代码如下:

if (CacheProvider.hasLocalStorage) {
Storage.prototype.setObject = function(key, value) {
this.setItem(key, JSON.stringify(value));
};

Storage.prototype.getObject = function(key) {
return JSON.parse(this.getItem(key));
};
}

现在就到了我们的三个核心方法了,分别是 get, set, 和clear.

Core class functionality
复制代码 代码如下:

CacheProvider.prototype = {

/**
* {String} k - the key
* {Boolean} local - get this from local storage?
* {Boolean} o - is the value you put in local storage an object?
*/
get: function(k, local, o) {
if (local && CacheProvider.hasLocalStorage) {
var action = o ? 'getObject' : 'getItem';
return localStorage[action](k) || undefined;
} else {
return this._cache[k] || undefined;
}
},

/**
* {String} k - the key
* {Object} v - any kind of value you want to store
* however only objects and strings are allowed in local storage
* {Boolean} local - put this in local storage
*/
set: function(k, v, local) {
if (local && CacheProvider.hasLocalStorage) {
if (typeof v !== 'string')) {
// make assumption if it's not a string, then we're storing an object
localStorage.setObject(k, v);
} else {
try {
localStorage.setItem(k, v);
} catch (ex) {
if (ex.name == 'QUOTA_EXCEEDED_ERR') {
// developer needs to figure out what to start invalidating
throw new Exception(v);
return;
}
}
}
} else {
// put in our local object
this._cache[k] = v;
}
// return our newly cached item
return v;
},

/**
* {String} k - the key
* {Boolean} local - put this in local storage
* {Boolean} o - is this an object you want to put in local storage?
*/
clear: function(k, local, o) {
if (local && CacheProvider.hasLocalStorage) {
localStorage.removeItem(k);
}
// delete in both caches - doesn't hurt.
delete this._cache[k];
}

};

如何运用?
注意在这篇文章的开始,就说了Cache Provider 是可选支配的本地存储,首先然让我们看一个没有本地存储的例子:

getElementsByClassName
复制代码 代码如下:

var cache = new CacheProvider;

window.getElementsByClassName = getElementsByClassName || function(c) {
var reg = cache.get(c) || cache.set(c, new RegExp("(?:^|s+)" + c + "(?:s+|$)"));
var elements = document.getElementsByTagName('*');
var results = [];
for (var i = 0; i if (elements[i].className.match(reg)) {
results.push(elements[i]);
}
}
return results;
};

备注:下次你调用类函数的时候, 将会用预先编译好的正则表达式替代够建造一个表达式。


再举一个例子:比如 对于大的应用程序需要i18n,你可以缓存一个编译好的html字符串进入本地存储中。
复制代码 代码如下:

var i18nCache = new CacheProvider;

if (i18nCache.get('topnav')) {
$('#nav').html(i18nCache.get('topnav'));
} else {
ajax('top-nav.tmpl', function(html) {
i18nCache.set('topnav', html);
$('#nav').html(i18nCache.get('topnav'));
});
}

除此之外,你开可以做很多外部资源缓存到本地的事情,加油:)
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menjadikan Peta Google sebagai peta lalai dalam iPhone Bagaimana untuk menjadikan Peta Google sebagai peta lalai dalam iPhone Apr 17, 2024 pm 07:34 PM

Peta lalai pada iPhone ialah Peta, pembekal geolokasi proprietari Apple. Walaupun peta semakin baik, ia tidak berfungsi dengan baik di luar Amerika Syarikat. Ia tiada apa-apa untuk ditawarkan berbanding Peta Google. Dalam artikel ini, kami membincangkan langkah yang boleh dilaksanakan untuk menggunakan Peta Google untuk menjadi peta lalai pada iPhone anda. Cara Menjadikan Peta Google Peta Lalai dalam iPhone Menetapkan Peta Google sebagai aplikasi peta lalai pada telefon anda adalah lebih mudah daripada yang anda fikirkan. Ikut langkah di bawah – Langkah prasyarat – Anda mesti memasang Gmail pada telefon anda. Langkah 1 – Buka AppStore. Langkah 2 – Cari “Gmail”. Langkah 3 – Klik di sebelah apl Gmail

Di manakah fail video disimpan dalam cache penyemak imbas? Di manakah fail video disimpan dalam cache penyemak imbas? Feb 19, 2024 pm 05:09 PM

Dalam folder manakah penyemak imbas menyimpan video tersebut Apabila kita menggunakan pelayar Internet setiap hari, kita sering menonton pelbagai video dalam talian, seperti menonton video muzik di YouTube atau menonton filem di Netflix. Video ini akan dicache oleh penyemak imbas semasa proses pemuatan supaya ia boleh dimuatkan dengan cepat apabila dimainkan semula pada masa hadapan. Jadi persoalannya, dalam folder manakah video yang dicache ini sebenarnya disimpan? Pelayar yang berbeza menyimpan folder video cache di lokasi yang berbeza. Di bawah ini kami akan memperkenalkan beberapa pelayar biasa dan mereka

Apl jam tiada dalam iPhone: Cara membetulkannya Apl jam tiada dalam iPhone: Cara membetulkannya May 03, 2024 pm 09:19 PM

Adakah apl jam hilang dari telefon anda? Tarikh dan masa masih akan dipaparkan pada bar status iPhone anda. Walau bagaimanapun, tanpa apl Jam, anda tidak akan dapat menggunakan jam dunia, jam randik, jam penggera dan banyak ciri lain. Oleh itu, membetulkan apl jam yang hilang hendaklah berada di bahagian atas senarai tugasan anda. Penyelesaian ini boleh membantu anda menyelesaikan isu ini. Betulkan 1 – Letakkan Apl Jam Jika anda tersilap mengalih keluar apl Jam daripada skrin utama anda, anda boleh meletakkan semula apl Jam pada tempatnya. Langkah 1 – Buka kunci iPhone anda dan mula meleret ke kiri sehingga anda mencapai halaman Pustaka Apl. Langkah 2 – Seterusnya, cari "jam" dalam kotak carian. Langkah 3 – Apabila anda melihat "Jam" di bawah dalam hasil carian, tekan dan tahan dan

Tidak boleh membenarkan akses kepada kamera dan mikrofon dalam iPhone Tidak boleh membenarkan akses kepada kamera dan mikrofon dalam iPhone Apr 23, 2024 am 11:13 AM

Adakah anda mendapat "Tidak dapat membenarkan akses kepada kamera dan mikrofon" apabila cuba menggunakan apl itu? Biasanya, anda memberikan kebenaran kamera dan mikrofon kepada orang tertentu berdasarkan keperluan untuk disediakan. Walau bagaimanapun, jika anda menafikan kebenaran, kamera dan mikrofon tidak akan berfungsi dan sebaliknya akan memaparkan mesej ralat ini. Menyelesaikan masalah ini adalah sangat asas dan anda boleh melakukannya dalam satu atau dua minit. Betulkan 1 – Sediakan Kebenaran Kamera, Mikrofon Anda boleh memberikan kebenaran kamera dan mikrofon yang diperlukan secara terus dalam tetapan. Langkah 1 – Pergi ke tab Tetapan. Langkah 2 – Buka panel Privasi & Keselamatan. Langkah 3 – Hidupkan kebenaran "Kamera" di sana. Langkah 4 – Di dalam, anda akan menemui senarai apl yang telah meminta kebenaran untuk kamera telefon anda. Langkah 5 – Buka "Kamera" apl yang ditentukan

Bagaimana untuk melihat dan menyegarkan cache dns dalam Linux Bagaimana untuk melihat dan menyegarkan cache dns dalam Linux Mar 07, 2024 am 08:43 AM

DNS (DomainNameSystem) ialah sistem yang digunakan di Internet untuk menukar nama domain kepada alamat IP yang sepadan. Dalam sistem Linux, cache DNS ialah mekanisme yang menyimpan hubungan pemetaan antara nama domain dan alamat IP secara tempatan, yang boleh meningkatkan kelajuan resolusi nama domain dan mengurangkan beban pada pelayan DNS. Caching DNS membolehkan sistem mendapatkan semula alamat IP dengan pantas apabila kemudiannya mengakses nama domain yang sama tanpa perlu mengeluarkan permintaan pertanyaan kepada pelayan DNS setiap kali, dengan itu meningkatkan prestasi dan kecekapan rangkaian. Artikel ini akan membincangkan dengan anda cara melihat dan memuat semula cache DNS pada Linux, serta butiran yang berkaitan dan kod sampel. Kepentingan Caching DNS Dalam sistem Linux, cache DNS memainkan peranan penting. kewujudannya

Percepatkan aplikasi anda: Panduan ringkas untuk caching Guava Percepatkan aplikasi anda: Panduan ringkas untuk caching Guava Jan 31, 2024 pm 09:11 PM

Bermula dengan Cache Guava: Percepatkan Aplikasi Anda Cache Guava ialah perpustakaan caching dalam memori berprestasi tinggi yang boleh meningkatkan prestasi aplikasi dengan ketara. Ia menyediakan pelbagai strategi caching, termasuk LRU (paling kurang digunakan baru-baru ini), LFU (paling kurang digunakan baru-baru ini), dan TTL (masa untuk hidup). 1. Pasang cache Guava dan tambahkan pergantungan perpustakaan cache Guava pada projek anda. com.goog

Adakah fail HTML akan dicache? Adakah fail HTML akan dicache? Feb 19, 2024 pm 01:51 PM

Tajuk: Mekanisme caching dan contoh kod fail HTML Pengenalan: Semasa menulis halaman web, kita sering menghadapi masalah cache penyemak imbas. Artikel ini akan memperkenalkan mekanisme caching fail HTML secara terperinci dan menyediakan beberapa contoh kod khusus untuk membantu pembaca memahami dan menggunakan mekanisme ini dengan lebih baik. 1. Prinsip caching pelayar Dalam penyemak imbas, apabila halaman web diakses, penyemak imbas akan terlebih dahulu menyemak sama ada terdapat salinan halaman web dalam cache. Jika ada, kandungan halaman web diperoleh terus daripada cache Ini adalah prinsip asas caching pelayar. Faedah mekanisme caching pelayar

Bagaimana untuk menyimpan fail video dari cache penyemak imbas ke setempat Bagaimana untuk menyimpan fail video dari cache penyemak imbas ke setempat Feb 23, 2024 pm 06:45 PM

Cara Mengeksport Video Cache Penyemak Imbas Dengan perkembangan pesat Internet, video telah menjadi bahagian yang sangat diperlukan dalam kehidupan seharian orang ramai. Semasa menyemak imbas web, kami sering menemui kandungan video yang ingin kami simpan atau kongsi, tetapi kadangkala kami tidak dapat mencari sumber fail video kerana ia mungkin hanya wujud dalam cache penyemak imbas. Jadi, bagaimanakah anda mengeksport video daripada cache penyemak imbas anda? Artikel ini akan memperkenalkan anda kepada beberapa kaedah biasa. Pertama, kita perlu menjelaskan konsep, iaitu cache pelayar. Cache penyemak imbas digunakan oleh penyemak imbas untuk meningkatkan pengalaman pengguna.

See all articles