[서버] 동기와 비동기 프로그램
빨래 - 설거지 - 청소
동기적으로 일을 처리한다. - 동기적 : 일단 빨래를 한다. - 한 시간 뒤 설거지 - 한 시간 뒤 청소 - 3시간 후 일이 끝났다.
비동기적으로 일을 처리한다. -빨래하는 업체, 설거지 업체, 청소 업체 : 업체에게 빨래 해달라고 전화 빨리 끝나면 전화해 달라, 설거지 업체에게 전화 하고 끝나면 알려줘, 그후 청소 업체게 전화하고 끝나고 알려달라고함. 일을 재깍 재깍 바로 끝낼 수 있다.
이렇게 처리하게 되면 뭐가 먼저 될 질 알 수 없다. but 순서 상관 없다면 참 좋은 것
email 발행 -> 사람에게 이메일을 보내야 한다. -> 이메일 받을 사람 몇 만명
발행 버튼 누를 때
동기 : 서버에서 한명 한명에게 이메일 보냄 , 한명당 이메일을 보낸다면 1초가 걸리면 만 초가 걸린다.
비동기 : 이메일을 보내는 별도의 시스템에 보내라고 위탁하라고 함, 일이 끝나면 나에게 알려쥬 ( 백그라운드에서 작동 )
안붙어 있으면 비동기 방식
Sync 붙어 있으면 동기 방식
비동기적으로 어떤일을 처리한다. node.js 의 처리 철학
특별히 원할때 Sync를 이용하여 동기로 처리한다. ( 웬만하면 하지 말라고함 )
- node.js 는 싱글 스레드 라서 동기로 하게 될 경우 그 작업이 10분 걸리면 10분동안 다른 작업 아무 것도 못함!
'생활코딩 ' 카테고리의 다른 글
[서버] express 기본 개념 (0) | 2016.12.03 |
---|
[js] jquery로 hover 상태일때 다루기
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>hover demo</title>
<style>
ul {
margin-left: 20px;
color: blue;
}
li {
cursor: default;
}
span {
color: red;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<ul>
<li>Milk</li>
<li>Bread</li>
<li class="fade">Chips</li>
<li class="fade">Socks</li>
</ul>
<script>
$( "li" ).hover(
function() {
$( this ).append( $( "<span> ***</span>" ) );
}, function() {
$( this ).find( "span:last" ).remove();
}
);
$( "li.fade" ).hover(function() {
$( this ).fadeOut( 100 );
$( this ).fadeIn( 500 );
});
</script>
</body>
</html>
내가 쓴 예시
1 2 3 4 5 6 7 8 9 | <script> $("#request_mode_index").hover(function(){ document.getElementById("request_mode_blur").style.display="inline"; },function(){ document.getElementById("request_mode_blur").style.display="none"; }); </script> | cs |
'개발 > [언어] JS' 카테고리의 다른 글
[js] HTML에서 JavaScript 로드하기 (0) | 2016.11.05 |
---|
[Web] 웹 브라우저의 구조 (Window의 구조) [생활코딩]
(출처 : http://learn.javascript.ru/browser-environment)
Dom (다큐먼트 오브젝트 모델) - 문서를 제어 (가장 중요한 제어) ex) body, img .....
Bom (브라우져 오브젝트 모델)- 현재 웹브라우져가 가르키고있는 url 또는 표시하고있는 페이지 리로드, 경고창 띄우기 담당
BOM
Browser Object Model. 웹페이지의 내용을 제외한 브라우저의 각종 요소들을 객체화시킨 것이다. 전역객체 Window의 프로퍼티에 속한 객체들이 이에 속한다.
1 2 3 4 5 6 7 | <!DOCTYPE html> < html > < body > < input type = "button" onclick = "alert(window.location)" value = "alert(window.location)" /> < input type = "button" onclick = "window.open('bom.html')" value = "window.open('bom.html')" /> </ body > </ html > |
DOM
Document Object Model. 웹페이지의 내용을 제어한다. window의 프로퍼티인 document 프로퍼터에 할당된 Document 객체가 이러한 작업을 담당한다.
Document 객체의 프로퍼티는 문서 내의 주요 엘리먼트에 접근할 수 있는 객체를 제공한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!DOCTYPE html> < html > < body > < script > // body 객체 console.log(document.body); // 이미지 객체들의 리스트 console.log(document.images); </ script > </ body > </ html > |
또한 특정한 엘러먼트의 객체를 획득할 수 있는 메소드도 제공한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!DOCTYPE html> < html > < body > < script type = "text/javascript" > // body 객체 console.log(document.getElementsByTagName('body')[0]); // 이미지 객체들의 리스트 console.log(document.getElementsByTagName('body')); </ script > </ body > </ html > |
(출처 : https://opentutorials.org/course/1375/6622)
'개발 > 웹' 카테고리의 다른 글
HTML, CSS, JAVASCRIPT 공부하면서 정리 (0) | 2016.10.14 |
---|---|
웹 개발 도움이되는 홈페이지 (1) | 2016.10.03 |