Cache max-age
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 մոդուլի համար։ Օրինակ դիտեք հետևյալ խնդիրները․
- # 2352009՝ [pp-3] Էջի վերագրանցման և կեշի վերագրման առավելագույն տարիքի փոխանցում
- # 2449749՝ #cache ['downstream-ttl'] ավելացնելը և #cache ['max-age'] լոգիկայի փոփոխությունը՝ #cache ['age'] ավելացնելով
- # 2835068՝ PageCache-ը կեշավորում է ոչ կեշավորվող պատասխաններ (խախտելով HTTP/1.0 սակագիծը) + D8-ն դիտմամբ անջատում է HTTP/1.0 պրոքսին
- # 2951814՝ X-Drupal-Cache և X-Drupal-Dynamic-Cache հեդերները միշտ տեղադրել, նույնիսկ ոչ կեշավորվող պատասխանների համար
Դուք պետք է հիշեք, որ մինչ այս (և, հնարավոր է, այլ) խնդիրները լուծվեն, max-age-ի սահմանումը ռենդերային զանգվածի համար, որը ներառված է էջում, բավարար չէ, որպեսզի անանուն օգտատերերը տեսնեն նոր տարբերակը max-age-ի ավարտից հետո։ Միևնույն ժամանակ, Cache Control Override մոդուլը փորձում է մեղմել այդ խնդիրները։ Կարող եք նաև հաջողություն ունենալ՝ սահմանելով անհատական կեշի թեգ ժամկետային կախվածության էջերի համար և ձեռքով չեղարկել այդ թեգերը hook_cron()-ի միջոցով։ Բարի հաջողություն!
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.