/*
코드를 하나로 묶는 역할로 중요한 것이 함수
네트웍을 호출하고->데이터를 가져오고->JSON.parse(객체변환)
3개의 코드를 함수로 묶기
*/
const container = document.getElementById('root');
const ajax = new XMLHttpRequest();
const content = document.createElement('div');
// 3개 코드를 묶는 함수를 만들건데, 함수 이름은 그 함수가 하는 역할을 잘 나타내주는 이름으로 하기 'getData' 데이터를 가져오는 함수니까
function getData(url) {
// 데이터를 GET 해올 때, URL 즉, 호출하는 주소가 다르다. GET데이터를 사용할 때마다 주소가 다르니 입력은 'url'로 받아주기
//ajax.open('GET',NEWS_URL,false);
ajax.open('GET',url,false);
ajax.send();
//getData 함수가 쓸 게 아니라 getData를 사용하는 쪽에서 사용할 데이터니 return만 해주기
return JSON.parse(ajax.response); //함수의 처리 결과를 return으로 반환해주기
}
//const newsFeed = JSON.parse(ajax.response);
const newsFeed = getData(NEWS_URL);
const ul =document.createElement('ul');
window.addEventListener('hashchange',function(){
const id = location.hash.substr(1);
// ajax.open('GET',CONTENT_URL.replace('@id',id),false);
// ajax.send();
//const newsContent = JSON.parse(ajax.response); 를 아래처럼 바꿔줌
const newsContent = getData(CONTENT_URL.replace('@id',id)); // ajax.open('GET',CONTENT_URL.replace('@id',id),false); 의 CONTENT_URL.replace('@id',id) 를 인자로 넘겨줌
const title=document.createElement('h1');
title.innerHTML = newsContent.title;
content.appendChild(title);
console.log(newsContent);
console.log(location.hash);
});
for(let i = 0; i < 10; i++) {
const div = docunment.createElement('div');
const li = document.createElement('li');
const a = document.createElement('a');
div.innerHTML= `
<li>
<a href="#${newsFeed[i].id}">title(comments)</a>
</li>
`;
a.href='#${newsFeed[i].id}';
a.innerHTML = `${newsFeed[i].title}(${newsFeed[i].comments_count})`;
li.appendChild(a);
ul.appendChild(li);
}
container.appendChild(ul);
container.appendChild(content);
'✍ 따뜻한 개발 공부' 카테고리의 다른 글
[JavaScript] font-awesome 홈페이지를 이용하여 아이콘 입히기 (0) | 2022.08.13 |
---|---|
[Ajax] 템플릿을 사용하여 복잡한 코드를 가시화 시키기 (0) | 2022.08.12 |
[Ajax] 클릭 이벤트 발생 시 제목을 불러와줘~! (Java Script) (0) | 2022.08.10 |
[Ajax] 서버 외의 외부에서 데이터 가져오기(java script) (0) | 2022.08.09 |
[프론트앤드] 학습 환경 구축하기 / 개발 공부 현타 (0) | 2022.08.08 |
댓글