๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๐Ÿ’ก์ด์Šˆ

ํ•„์š”ํ• ๋•Œ๋งˆ๋‹ค ๋กœ๋”ฉ์Šคํ”ผ๋„ˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ .. ajax์š”์ฒญ์ด complete๋˜๋ฉด ๊บผ์ง€๊ฒŒ ํ–ˆ๋”๋‹ˆ

๋‹ค๋ฅธ ์š”์ฒญ๊ณผ ๋™์‹œ์— ์žˆ์„๋•Œ ํƒ€์ด๋ฐ์ด ๊ฒน์ณ์„œ ์•„์ง ๋‚ด๋ถ€ ajax๊ฐ€ ๋๋‚˜์ง€ ์•Š์•˜๋Š”๋ฐ ์Šคํ”ผ๋„ˆ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ํ˜„์ƒ์ด ์ƒ๊ฒผ๋‹ค.

 

ํ•ด๊ฒฐ ์ „๋žต

“๋ชจ๋“  Ajax๊ฐ€ ๋๋‚ฌ์„ ๋•Œ๋งŒ ๋กœ๋”ฉ์„ ๋„๋Š”” ์ „์—ญ ์ด๋ฒคํŠธ๋ฅผ ์จ์•ผ ํ•จ.

jQuery์—๋Š” ์ด๊ฑธ ์œ„ํ•ด
ajaxStart / ajaxStop ์ด๋ฒคํŠธ๊ฐ€ ์žˆ๋‹ค.

ํ•ด๊ฒฐ ์ฝ”๋“œ

$(document).ready() ๋ฐ–(๊ณต์šฉ JS — ์˜ˆ: layout.js)์— ๋”ฑ ํ•œ ๋ฒˆ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค.

// ๋ชจ๋“  Ajax ์š”์ฒญ์ด ์‹œ์ž‘๋˜๋ฉด ๋กœ๋”ฉ ํ‘œ์‹œ
$(document).ajaxStart(function () {
    $("body").addClass("loading");
});

// ๋ชจ๋“  Ajax ์š”์ฒญ์ด ๋๋‚˜๋ฉด ๋กœ๋”ฉ ํ•ด์ œ
$(document).ajaxStop(function () {
    $("body").removeClass("loading");
});

 

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ํŽ˜์ด์ง€ ์ง„์ž… ์‹œ ์—ฌ๋Ÿฌ Ajax๊ฐ€ ์‹คํ–‰๋˜๋„ ๋ชจ๋‘ ๋๋‚ ๋•Œ๊นŒ์ง€ ์Šคํ”ผ๋„ˆ๊ฐ€ ์œ ์ง€๋œ๋‹ค.


์ถ”๊ฐ€ ํŒ

ํŠน์ • ์š”์ฒญ๋งŒ ๋กœ๋”ฉ ์ œ์–ดํ•˜๊ณ  ์‹ถ์„ ๋•Œ

๋งŒ์•ฝ ์ผ๋ถ€ Ajax ์š”์ฒญ(์˜ˆ: ์ž‘์€ ํ†ต๊ณ„ ๊ฐฑ์‹ )์€ ์Šคํ”ผ๋„ˆ๋ฅผ ๋„์šฐ๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด, ํ•ด๋‹น ์š”์ฒญ์—์„œ global: false ์˜ต์…˜์„ ์ฃผ๋ฉด ๋œ๋‹ค.

$.ajax({
  url: '/small-data',
  global: false, // ajaxStart/ajaxStop ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ
  success: function(res) { ... }
});

 

๋ฐ˜์‘ํ˜•