๋ฐ์ํ
๐ก์ด์
ํ์ํ ๋๋ง๋ค ๋ก๋ฉ์คํผ๋๋ฅผ ์ถ๊ฐํ๊ณ .. 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) { ... }
});
๋ฐ์ํ