자바스크립트: setInterval(반복 함수) 정지하는 방법 (clearInterval 사용)

자바스크립트에서 setInterval(function, millisecond)는 일정 시간(ms) 마다 함수를 실행하는 기능입니다. 예를 들어 millisecond를 1000으로 정하면 1초마다 함수를 반복 실행합니다. 참고로 0초(최초 setInterval이 실행되는 시점)에서는 실행되게 하려면 millisecond를 0으로 지정해야 합니다. 만약 1000로 설정했다면, 0초에는 아무 액션도 취하지 않고 있다가 1초 이후부터 실행 부분을 반복하게 됩니다. 실행되고 있는 인터벌 함수를 중지시키려면 clearInterval([인터벌 더보기…

axios: AJAX 데이터 받기 (Promise 기반) + 예제 (JSON 가져오기)

axios 홈페이지: https://github.com/axios/axios 사용법 axios는 Promise 기반의 AJAX 라이브러리입니다. 기본 형태는 다음과 같습니다. axios.get(‘/user’, { params: { ID: ‘anyvalue’ } }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }) .finally(function () { // always executed }); axios.get 뿐만 아니라 post, delete, put, patch 등 리퀘스트 종류에 따라 사용할 수 있습니다. 더보기…

자바스크립트: 캔버스를 이미지 파일로 다운로드

<a> 요소를 만들어서 클릭 이벤트를 트리거시켜 다운로드 하는 방식입니다. var canvas = document.getElementById(“somewhere”) canvas.toBlob(function(blob) { var a = document.createElement(“a”) document.body.appendChild(a) a.style = “display: none” blob.type = “octet-stream” var url = URL.createObjectURL(blob) a.href = url a.download = “filename” a.click() window.URL.revokeObjectURL(url) }

Spring: AJAX로 백엔드 컨트롤러에 이미지 전송

컨트롤러 (일부) @RequestMapping(value = “/url”, method = RequestMethod.POST) public String insert(MultipartHttpServletRequest request, HttpSession session, ModelMap model) throws Exception { String rootPath = session.getServletContext().getRealPath(“/”); System.out.println(“imageFile ” + request + ” ” + request.getParameter(“imgFile”) + ” ” + rootPath + ” “); Iterator<String> itr = request.getFileNames(); if(itr.hasNext()){ List<MultipartFile> mpf = request.getFiles(itr.next().toString()); for(int 더보기…

Node.js: Webpack + Babel과 Babel/polyfill을 이용하여 ES6으로 작성된 코드를 ES5 이하에서도 호환되게 하기

Node.js: 설치, 코드 실행 (Windows 기준) Node.js: Webpack 설치하기 (Webpack 4 버전 기준) Node.js: Webpack 4 추가 설정 (CSS, HTML, dev-server)   require(‘./static/css/main.css’) // CSS 로딩 방법 console.log(“WELCOME”) // 기본 Babel만으로 동작 const funcEx = () => { alert(‘arrow’) } funcEx() // Promise 등은 Pollyfill을 필요로 한다. function msgAfterTimeout (msg, 더보기…

JQuery: $.parseXML 과 IE의 WrongDocumentError 에러

$.parseXML(string)은 스트링 형식으로 된 xml을 자바스크립트 객체로 파싱하는 역할을 한다. 이게 중요한게 아니고 크롬을 비롯한 기타 브라우저에서는 저걸 그냥 사용해도 이상이 없는데 인터넷 익스플로러에서만 발생하는 오류가 있다. <script> function xmlDocGenerator(tagName){ var xml = document.implementation.createDocument(“”, “”, null); var topNode = xml.createElement(tagName) xml.appendChild(topNode) return xml.cloneNode(true); } var xmlHeader = xmlDocGenerator(“elm:customTag”) xmlHeader = 더보기…

JQuery: 제이쿼리 사용법 이것저것 (select opiton, 체크박스, DOM, 위아래이동, 이벤트 부여, 배열 순회, 자식-부모 요소, AJAX, XML 파싱, 이벤트 한번만 실행 one)

select ~ option의 선택된 값 읽기 $(“select option:selected”).val() // 또는 .text() 체크박스 체크되어있는지 알아내기 $(“#specific-checkbox).is(“:checked”) JQuery 전용 포맷 DOM을 일반용으로 변경 $(“#element-id”).get(0) 여러개의 같은 요소로 이루어진 리스트에서 한 칸 아래/위(다음/이전)으로 이동 $(“.each-div.active”).next().after($(“.each-div.active”)) $(“.each-div.active”).prev().before($(“.each-div.active”)) 해당 요소에 부여된 이벤트 트리거 $(“#element-id”).on(“click”, function(){…}) // 이벤트 부여 $(“#element-id”).trigger(“click”) // 해당 요소를 클릭했을 때의 이벤트 더보기…

Vue.js: 컴포넌트 선언

이전 글: Vue.js: 기초 사용 방법 + 예제: 이름으로 보는 운세   요구사항: Home, Portfolio, Guestbook 3개의 메뉴로 된 홈페이지를 만들되 각 메뉴는 Vue.js의 컴포넌트를 사용하여 작성하시오. <!DOCTYPE html> <html lang=”ko”> <head> <meta charset=”UTF-8″> <title>Homepage</title> <link rel=”stylesheet” href=”[부트스트랩-cdn-주소]”> </head> <body class=container> <nav id=”home-nav” class=”navbar navbar-expand-lg navbar-dark bg-dark”> <a class=”navbar-brand” href=”#”>{{ title 더보기…

자바스크립트 예제: 일본어 가사를 Quizlet으로 공부하자!

[예제 사이트 가기] 이 예제는 예전에 만들었던 건데요 위와 같은 포맷의 일본 노래 가사를 이용해 학습 세트를 만드는 예제입니다. Quizlet(www.quizlet.com)은 플래시카드 학습 사이트인데, 카드 만들기 기능을 이용해 일본어 가사를 복붙하면 퀴즐렛에서 입력할 수 있는 포맷으로 바뀌며 이것을 이용해 퀴즐렛 문답세트를 만들 수 있습니다. 한국어로 해석된 일본 노래 가사들은 대개 [일본어 더보기…

자바스크립트: 콜백, Promise, async – await 기초

자바스크립트에서 작업을 의도한 순서대로 처리한 방법에는 콜백, Promise, async – await 3가지가 있습니다. async – await가 최신 기술이며 3가지 방법들은 이전 개념을 이해해야 진행할 수 있습니다. 원래 프로그래밍 언어가 순서대로 처리하는 건데 왜 별도의 개념을 익혀야 하느냐 묻는다면, 자바스크립트에서는 비동기 처리라는 복잡한 문제가 있기 때문입니다. 비동기 처리란 특정 코드의 연산이 끝날 때까지 더보기…