logo

Palette - Make it Colorful🎨

Palette - Visual Page Builder, no design degree required.

Live Demo Download Palette

Scroll
19/06/2025, by Ivan

Cache max-age = ժամանակային կախվածություններ

Cache max-age-ն նման է HTTP Cache-Control հեդերի max-age հրահանգին։

Ինչու՞

Կեշի առավելագույն տարիքը տրամադրում է հայտարարագրական միջոց ստեղծելու ժամանակով պայմանավորված կեշեր։

Որոշ տվյալներ գործում են միայն սահմանափակ ժամանակահատվածում, այդ դեպքում ցանկանում եք նշել համապատասխան առավելագույն տարիքը։ Սակայն Drupal 8-ի միջուկի դեպքում մեզ մոտ չկա միայն սահմանափակ ժամանակով գործող տվյալներ. մենք սովորաբար պահում ենք կեշը մշտապես (տես ստորև) և ամբողջովին հույս ունենք կեշի թեգերի վրա՝ չեղարկման համար։

Ինչպիսի՞ն է

Կեշի առավելագույն տարիքը դրական ամբողջ թիվ է, որը արտահայտում է վայրկյանների քանակը։

Կեշի առավելագույն տարիքը փոխանցվում է որպես մեկ ամբողջ թիվ, քանի որ տվյալ կեշ տարրի համար տրամաբանականորեն կարող է լինել միայն մեկ առավելագույն տարիք։

Օրինակներ․

  • 60 նշանակում է կեշավորման 60 վայրկյան
  • 100 նշանակում է կեշավորման 100 վայրկյան
  • 0 նշանակում է կեշավորում 0 վայրկյան, այսինքն՝ չի կեշավորվում
  • \Drupal\Core\Cache\Cache::PERMANENT նշանակում է, որ կեշավորվում է անվերջ, այսինքն՝ այն կչեղարկվի միայն կեշի թեգերի միջոցով (այլ կերպ ասած՝ անսահման վայրկյաններ)

Այդ պատճառով, օրինակ, եթե ցանկանում եք կանխել ռենդերացված բլոկի կեշավորումը, պետք է max-age-ը սահմանեք 0։

Օրինակ հիմնական ռենդերինգի զանգվածների համար․

$build['#cache']['max-age'] = 0;

Օրինակ ֆունկցիայի մեջ․

\Drupal::cache()->set('my_cache_item', $school_list, REQUEST_TIME + (86400));

Եթե ցանկանում եք բլոկի max-age-ը դարձնել 0, պետք է իրականացնել getCacheMaxAge մեթոդը։

Առավելագույն տարիքի սահմանափակումներ

Ցավոք, max-age-ը չի աշխատում անանուն օգտատերերի և Drupal միջուկի Page Cache մոդուլի համար։ Օրինակ դիտեք հետևյալ խնդիրները․

Դուք պետք է հիշեք, որ մինչ այս (և, հնարավոր է, այլ) խնդիրները լուծվեն, max-age-ի սահմանումը ռենդերային զանգվածի համար, որը ներառված է էջում, բավարար չէ, որպեսզի անանուն օգտատերերը տեսնեն նոր տարբերակը max-age-ի ավարտից հետո։ Միևնույն ժամանակ, Cache Control Override մոդուլը փորձում է մեղմել այդ խնդիրները։ Կարող եք նաև հաջողություն ունենալ՝ սահմանելով անհատական կեշի թեգ ժամկետային կախվածության էջերի համար և ձեռքով չեղարկել այդ թեգերը hook_cron()-ի միջոցով։ Բարի հաջողություն!