BFCache๋ž€?

๋ชจ๋ฐ”์ผ ์›น์„ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ํŠน์ • OS/๋ธŒ๋ผ์šฐ์ €์˜ ํŠน์„ฑ์— ๋”ฐ๋ฅธ ์ด์Šˆ๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์•„์ดํฐ(IOS) Safari ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋’ค๋กœ๊ฐ€๊ธฐ(history.back) or ๋™์ผ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ–ˆ์„๋•Œ ํŽ˜์ด์ง€๊ฐ€ reload๋˜์ง€ ์•Š๊ณ , ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ์ฆ์ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

BFCache๋Š” Back-Forward Cache๋กœ safari, firefox ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ผ ์„ธ์…˜์—์„œ ์ด์ „ ํŽ˜์ด์ง€๋ฅผ ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ๋กœ๋”ฉํ•˜๊ธฐ ์œ„ํ•ด ์ด์ „์— ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ๋กœ๋“œํ•˜๊ณ  ์žˆ๋‹ค.

์ด๋–„ Javascript ์ƒํƒœ๊ฐ’๊นŒ์ง€ ์ €์žฅ๋œ ๊ฐ’์œผ๋กœ ์žฌ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, window.onload ํ˜น์€ $(document).ready() ๋‹จ๊ณ„์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” BFCache๋ฅผ ํ†ตํ•ด ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๊ฒƒ์€ ์ด์Šˆ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ onpageshow() ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•ด ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

  • onpageshow : ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋ ๋•Œ๋งˆ๋‹ค ๋ฌด์กฐ๊ฑด ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ

  • persisted ์†์„ฑ : ํŽ˜์ด์ง€๊ฐ€ ์บ์‹œ๋˜์—ˆ์„ ๊ฒฝ์šฐ true, ์•„๋‹Œ ๊ฒฝ์šฐ false๋ฅผ return

$(window).bind('pageshow', function(event){
  if(event.originalEvent && event.originalEvent.persisted){
    location.reload();
 }
});

์ฆ‰, ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋ ๋•Œ๋งˆ๋‹ค persisted ์†์„ฑ์ด true์ด๋ฉด location.reload() ๋ฆฌ๋กœ๋“œ ํ•ด์ฃผ์–ด ํ•ด๊ฒฐํ•œ๋‹ค.

์ฐธ์กฐ ํŽ˜์ด์ง€

Last updated