

@20002000
اگر به این موضوع نگاه می کنید احتمالاً از خود می پرسید که من کیستم.

در یکی از مقالات من به شما نشان دادم که چگونه یک موتور ساده الگو JS ایجاد کنید. در این مقاله من به شما نشان می دهم که چگونه ذخیره ساده را به مجموعه الگوهای ما اضافه کنید.
نحوه ذخیره سازی با موتورهای الگو JS چگونه کار می کند
ذخیره سازی با موتور الگوی ما بسیار ساده است. ما فقط یک مقدار مقدار key را نگه داشته و از رشته های الگو به عنوان کلید و توابع را به عنوان مقدار استفاده می کنیم. با این کار استفاده های بعدی از یک الگو سریعتر انجام می شود.
پیاده سازی آن در داخل کامپایل
همه تابع کامپایل ما این است:
const compile = (template) = {
return new Function("data", "return " + compileToString(template))
}
بگذارید این را به
compileToFunction
.
const compileToFunction = (template) = {
return new Function("data", "return " + compileToString(template))
}
حالا بیایید یک حافظه پنهان ایجاد کنیم. ما از a استفاده خواهیم کرد
Map
برای این.
حالا بیایید یک را اضافه کنیم
compile
تابعی که از این استفاده می کند
cache
.
همه ما باید انجام دهیم این است که بررسی کنید که آیا
cache.has(template)
. در غیر این صورت ، باید آن را ایجاد و تنظیم کنیم. اگر آن را داشته باشد ، فقط باید آن را پس دهیم.
const compile = (template) = {
if (cache.has(template)) {
return cache.get(template);
} else {
const compiledFunction = compileToFunction(template);
cache.set(template, compiledFunction);
...