안녕하세요. 따시 입니다.

 

웹페이지를 제작 할때에 로딩바 출력을 만들려고 합니다.

 

프로젝트 할때에 화면 조회시 페이지를 만들때에 대부분 두가지로 나누어 지는데요

 

Ajax로 호출하여 화면에 뿌려줄때에 와 Submit 시켜서 화면을 조회 할 수 가 있습니다.

 

이:때에 Ajax 할때에는 로딩바 만들기는 수월하나

 

Submit으로 조회 화면을 만들때에는 로딩바를 어떻게 해야할지 고민을 하였습니다.

 

이미 다 만들어 놓았는데, 클라이언트가 로딩바를 넣어달라는 요청에 고민이 되었죠.

 

제가 사용할 로딩바 이미지는 아래와 같습니다.

 

 

 

 

● Submit으로 로딩바 호출방법

<body>
  <div id="div_load_image" style="position:absolute; top:50%; left:50%;width:0px;height:0px; z-index:9999; background:#f0f0f0; filter:alpha(opacity=50); opacity:alpha*0.5; margin:auto; padding:0; text-align:center">
      <img src="/images/common/loading.gif" style="width:100px; height:100px;">
  </div>
  
  .
  .
  .
 </body>

Body 상단에 div 영역을 넣어줍니다. 이미지 경로는 프로젝트 경로에 맞게 수정해야겠죠

이렇게 할 경우에 화면에 접속하면 로딩바가 계속 돌고 있습니다.

 

<script>
	window.onload = function () {
	   $("#div_load_image").hide();
   	}

	.
	.
	.
	.
    
</script>

이제 <script> 에서 windows.onload 쪽에 $("#div_load_image").hide(); 을 넣어줍니다.

이렇게 하면 html이 다 브라우저에 뿌려진 후에 해당 div를 hide 시켜버립니다.

그러면 화면 조회후 로딩바는 사라지게 되지요

 

<script>
	function search(){
		$("#div_load_image").show();
		$("#searchForm").attr("method", "POST");
		$("#searchForm").attr("action", "/test");
		$("#searchForm").submit()
	}
<script>

마지막으로 조회 하면 function을 호출하는 곳에 $("#div_load_image").show(); 을 넣어주면 됩니다.

 

 

● Ajax 로 로딩바 호출방법

<script>
	function callAjax(test, test2){
		var sendData;
		sendData = JSON.stringify({
			"test" : test,
			"test2": test2
		});
		
		$("#div_load_image").show();

		$.ajax({
			type 		: 	'POST',
			url			:	"/test",
			contentType: 	"application/json;charset=UTF-8",
			data 		:	sendData,
			dataType	: 	'json',
			success		:	function(data){
				// 조회성공
				$("#div_load_image").hidden();
			},
			error: function(jqXHR, textStatus, errorThrown){
				alert("오류가 발생하였습니다.");
				$("#div_load_image").hidden();
		   }
		});

	}
</script>

호출전에 show() 함수로 노출 후 success 또는 error 일때에 hidden() 처리하면 됩니다.

 

 


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기