چگونه می توان حافظه پنهان خودکار را به موتور الگو JS خود اضافه کرد

عکس پروفایل نویسنده

@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);
    ...
سئو PBN | خبر های جدید سئو و هک و سرور