반응형

** ajax : 자바 스크립트를 이용해서 도메인 내의 데이터를 비동기적으로 받아오는 기술

 

 

was는 클라이언트의 요청(url) 필요한 서비스 호출

webserverwas 필요하지만 socket서버는 was필요없다.

클라이언트 요청(url) ->필요한 서비스 호출

메뉴 클릭하고 메인쪽만 변하게 하는 것 client가 쓰기 편하게 해서 만드는 것

웹에서는 ajax이다.

web socket은 내가 close할 때 까지 계속 연결된다. : chatting일 경우

ajax는 한번 하고 끊고 해야 한다. : .id등 검사

챗봇 서비스 : web socket으로 해야 한다. 대화를 주고 받아야 한다.

네이브 광과 -----------계속 바뀐다. 바뀌는 구조

1분에 한번씩 읽어오는 것이 낫다. 일정한 주기를 가지고 통신

실시간 대화 재일 많이 하는 것 : 게임

 

체팅 따로 뜨는 것은 activex

브라우즈로 들어가면 HTML이다.

 

Database,Java,Web FrontEnd,Java Web Server Programming

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>ajax 요청</title>

</head>

<body>

           <div>고정된 내용</div>

           <div id="disp">동적으로 변경되는 내용</div>

           <div>고정된 내용</div>

          

           <script>

                      

                       //ajax를 이용해서 data.txt 파일의 내용을 읽어서 disp 영역에 출력

                       //여러번 사용할 필요 없다.

                       var disp = document.getElementById("disp");

                      

                       //ajax 객체 생성

                       var request;

                       if(window.ActiveXObject){

                                  request= new ActiveXObject("Microsoft.XMLHTTP");

                       }else{

                                  request = new XMLHttpRequest();

                       }

          

                       //요청 옵션을 생성 - data.txt GET 방식으로 요청

                       request.open('GET', 'data.txt');

                      

                       //30초마다 계쏙 수행되는 타이머

                       setInterval(function(){

                                  //요청을 전송

                                  request.send('');

                       }, 10000);

                      

                       //요청을 전송

                       request.send('');

                      

                       //비동기는 언제 종료될지 모르기 때문에 종료 된 후에 어떤 동작을 수행하고자 하면 콜백 메소드에 작성

                       //callback:어떤 이벤트가 발생하면 호출되는 메소드

                       //파일을 읽는 부분도 마찬가지 -파일을 읽어주세요 요청 - 파일을 전부 읽으면(LOAD) 동작을 수행

                      

                       //콜백 메소드를 등록

                       request.onreadystatechange = function(){

                                  //응답을 정상적으로 받은 경우

                                  if(request.readyState == 4 && request.status >= 200 && request.status < 300){

                                              //읽어온 데이터를 disp에 출력

                                              disp.innerHTML = request.responseText;

                                  }

                       }

           </script>

          

</body>

</html>

 

 

 

 

 

 

 

**json파싱

자바스크립트에서는 json문자열은 json.parse()에 대입하면 파싱을 수행해서 자바스크립트 객체로 리턴을 해줍니다.

 

[{"name" :"javascript" , "rank" :1} , {"name":"javascript","rank":2}]

 

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>ajax - json</title>

</head>

<body>

           <div id ="disp"></div>

           <script>

          

                       //1.ajax요청 객체 생성 -반드시 1

                       var request;

                       //IE와 다른 브라우즈가 ajax 요청 객체 생성 방법이 다름

                       if(window.ActiveXObject){

                                  request= new ActiveXObject("Microsoft.XMLHTTP");

                       }else{

                                  request = new XMLHttpRequest();

                       }

                      

                       //alert(request);

                      

                       //2.ajax요청 옵션을 생성 - 1번 이후이 3번보다 먼저 나오면 됨

                       request.open("GET","data.json");

                       //alert(request);

                      

                       //3.ajax 요청

                       //2 3은 순서가 있다. 만들고 보내야 하기 때문이다.

                       request.send('');

                      

                       //alert(request);

                      

                       //4.상태변화가 생겼을 때 호출될 콜백 메소드를 등록 - 1번 이후에 아무곳에서 작성해도 됨

                       //콜백(이벤트 처리) 메소드는 순서와 상관 없이 이벤트가 발생했을 때 호출되는 메소드1111

                       request.onreadystatechange = function(){

                                  //정상적으로 받아오는 경우

                                  if(request.readyState == 4 & request.status >= 200 && request.status < 300){

                                              //받아온 문자열

                                              var res = request.responseText;

                                              //json파싱 - 객체의 배열이 만들어집니다.

                                              var result = JSON.parse(res);

                                              //alert(result);

                                              //출력할 영역 찾기

                                              var disp = document.getElementById("disp");

                                             

                                              html = "";

                                              //배열 순회

                                             for(var idx in result){

                                                         //alert(result[idx]);

                                                         html += "<p>" + result[idx].name +":"+result[idx].rank+"</p>";

                                              }

                                              disp.innerHTML = html;

                                  }

                       };

                      

           </script>

</body>

</html>

 

 

**jquery

=>크로스 브라우징 지원을 위한 자바스크립트 라이브러리

=>jquery를 이용하면 ie와 다른 브라우저를 구분하는 코드를 만들 필요가 없습니다.

=>ajax 사용이나 애니메이션 같은 처리를 쉽게 처리해 줍니다.

=>다양한 플러그인들이 개발되어 있어서 복잡한 ui처리 등을 단순하게 처리할 수 있도록 해줍니다.

=>실무에서 많이 사용하기는 하지만 절다적이지는 않습니다.

=>jquery 의 링크를 먼저 실행하고 jquery를 사용해야 하고 서로 다른 버전의 링크를 만들면 안되고 동일한 파일의 링크를 2개 이상 작성해도 안됩니다.

 

1.사용방법

1)CDN(Content Delivery Network - 필요한 자원을 모아놓은 네트워크)의 링크를 이용

=>네트워크가 연결되지 않으면 사용할 수없습니다.

 

2)다운로드 받아서 프로젝트에 복사한 후 사용

open source

직접 link를 걸어서 사용할 수 있다. 여러개 사용할 경우에는 link가 복잡해진다.

open source

 

여러개의 open source를 받아서 repository에 담는다.

link repository의 것을 사용한다.

1)    실수를 줄일 수 있다. lincese문제

2)    일일이 링크를 알 필요없다. 네트워크의 영향을 받지 않는다. 나한테 가까운 것을 사용하는 게 유리하다.

https://jquery.com/download/

 

같은 소스여도 무료인것 있고

 

 

 

2.//로 시작하는 url은 상황에 따라 http:// https:// 연결한다는 의미

https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js주소를 browser에 해보면

 

 

 

3.javascript파일의 이름에 min이 포함되어 있으면 이 파일은 용량을 줄이기 위해서 공백을 최소화한 파일입니다이파일 경로에서 min.을 지우면 공백이 포함된 파일의 경로입니다.

공백이 포함된 파일은 학습용이고 공백이 제거된 파일은 개발용입니다.

min이 있으면 지워도 된다.

 

jquery차트 plugin

 

 

 

http://www.jqplot.com/examples/kcp_area.php

https://jqueryui.com/download/

https://getbootstrap.com/docs/4.4/getting-started/introduction/

다운로드 받아서 link설정해서 사용해야 한다.

 

4.jquery 플러그 인을 사용할 때는 다운로드 받아서 링크 부분을 수정해야 합니다.

 

**html5

=>플로그인 설치 없이 웹 애플리케이션을 만들기 위한 api가 추가된 html4 의 다음 버전

1.semantic tag 추가

=>의미전달을 위한 태그 - 이전에는 div로 생성

<article></article> 눈으로만 보면 div 와 아무런 차이가 없습니다.

로봇이 보면 div 는 그냥 영역이라고 판단하지만 article은 기사의 본문이라고 판단

이전에는 div 를 만들고 class속성을 추가해서 의미를 전달

이런 요소로 <header>,<section>,<article>,<aside>,<nav>,<footer>가 추가됨

nav 제목이구나 눈으로는 확인할 수 없다.

 

2.WebStorate

=>브라우저 안에 자바스크립트 객체를 저장

WEB저장소 API가 추가됬다.(session, cookie)

 

3.WebSQL

=>관계형 데이터베이스 사용

 

4..IndexedDB

=>데이터베이스 NoSQL과 유사한 데이터베이스 사용

 

5.Drag& Drop추가

 

6.geoLocation: 브라우저에서 위치 정보 사용 가능

(어디에서 로그인하는지 )

 

7.canvas: 2D3D 드로윙 가능

=>3dwebgl을 이용

 

8.webWorkr:스레드 api

웹브라우저 가운데도 백그라운드에서 인식 가능하다.

 

9.wEB Socket: httphttps는 한 번 데이터를 전송받으면 연결 해제되는데 WebSocket은 연결을 유지하는 것이 가능한데 프로토콜은 ws (채팅서비스)

 

10. Web Push:클라이언트의 요청없이 서버가 클라이언트에게 메시지를 전송하는 기술

 

WebSocketWebPush는 서버없이는 데스트가 불가능

HTML5semantic tag가 전부가 아님

 

 

 

**자바 웹 프로젝트의 실행

1.eclipse에서 실행

=>프로젝트가 자신의 워크스페이스의

C:\project\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 디렉토리에 프로젝트가 복사되서 실행

tmp는 바꿀 수 있다.

실행이 되는 프로젝트는 복사된 프로젝트인지 소스 코드를 작성하고 있는 프로젝트가 아닙니다.

.이 붙는 디렉토리는 unix(mac os x), linux에서는 숨김 디렉토리입니다.

Mac에서 단축키가 shift +command+. 을 누르면 숨김 디렉토리가 보여집니다.

 

프로젝트에 어떤 파일을 만들어주고 읽을려고 헀는데 실행을 하할 때 실수로 만들지 않은 경우 프로젝트에 새로 만들어도 반영이 안되는 경우가 있습니다.

이런 경우에는 실행이 되는 프로젝트에 파일을 만들어 주면 됩니다.

 

실행하고 있을 떄는 이 위에 경로에것 사용한다. 데이터를 변경해도 변경하지 않는다.

 

 

[{"name" :"javascript" , "rank" :1} , {"name":"javascript","rank":2}]

대괄호가 배열

중괄호가 객체

동기 : 순서가 존재하다.

비동기 : 순서 가 없다.

스레드는 비동기이다.

 

 

 

 

 

 

 

 

 

반응형

'Study > html,css, javascript' 카테고리의 다른 글

frontEnd-5  (0) 2020.10.15
frontEnd-4  (0) 2020.10.12
frontEnd-3  (0) 2020.10.12
frontEnd-2  (0) 2020.10.12
frontEnd-1  (0) 2020.10.10

+ Recent posts