큰 HTML 블록을 div에 동적으로 추가하려면 어떻게해야합니까?

MrKatSwordfish

웹 개발을 배우려고해서 아직 다양한 언어와 마크 업에 대한 경험이 많지 않습니다. Tumblr v2 API에서 JSON 데이터를 읽는 블로그가있는 웹 사이트를 만들고 있습니다. Tumblr에서 JSON 데이터를 가져온 후 각 게시물의 데이터 중 일부를 내 웹 사이트의 블로그에 추가하고 싶습니다. 여기에 제가 사용하려고했던 코드가 있습니다.

<script>
function loadBlogPosts(){
$.getJSON("http://api.tumblr.com/v2/blog/[MY_BLOG]/info?api_key=[MY_KEY]",
    function(blogData){
        $.each(blogData.posts, function(){
             $(#main_content).append( [BUNCH OF NESTED HTML] );
        });
    }
);
}
</script>

이 글을 쓰기 전에 div에 각 블로그 게시물의 '레이아웃'을 만드는 것이 좋은 생각이라고 생각했습니다. 그래서 나는 이것을 생각해 냈습니다.

<div class="post">
    <div class="post_header">
        <div class="post_title"></div>
        <div class="post_author"></div>
        <div class="post_date"></div>
    </div>
    <div class="post_content"></div>
    <div class="post_footer"></div>
</div>

그러나 그것이 내가 붙어있는 곳입니다. 내가 뭘하고 싶은지 알고 있지만 자바 스크립트 / JQuery / JSON / HTML에 대한 충분한 경험이 없어서 어떻게하는지 알 수 없습니다. JSON 블로그 데이터를 구문 분석하고 각 게시물에 대해 게시물 내용을 가져 와서 해당 div 구조에 적용하고 "main_content"div에 작성 / 추가합니다. 해당 div 그룹을 추가 기능에 복사하여 붙여 넣으려고합니다. 따옴표로 둘러싸여 있지만 따옴표와 슬래시가 정말 엉망이되었고 제대로 작동하는 것처럼 보이지 않았습니다 ..

그래서, 제가 그렇게하는 가장 좋은 방법은 무엇입니까? 내 JSON 데이터의 콘텐츠로 채우면서 중첩 된 HTML 요소의 큰 청크를 적용하는 좋은 방법이 있습니까? 그렇지 않은 경우 어떻게해야합니까? 나는 여전히 HTML, JavaScript 및 웹 코딩에 익숙하지 않기 때문에 완전히 잘못 될 수 있습니다!

코코넛

고성능을 원하는 경우 :

순수한 자바 스크립트에서 가장 성능이 좋은 방법은 아마도 createDocumentFragment()

function postEl(json){ // create a function for the POST element
 var post=document.createElement('div');
 post.className='post';
 var postHeader=document.createElement('div');
 postHeader.className='post_header';
 var postTitle=document.createElement('div');
 postTitle.className='post_title';
 postTitle.tectContent=json.title;
 //more code
 postHeader.appendChild(postTitle);
 //more code
 post.appendChild(postHeader);
 return post;
}

function appendPosts(){ // append each post to a fragment. and then to the main
 var frag=document.createDocumentFragment();
 for(/*each post*/){
  frag.appendChild(postEl(/*jsonPost*/));
 }
 document.getElementById('main_content').appendChild(frag);
}

구조를 미리 생성하면 성능도 향상됩니다.

cloneNode

https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode

https://developer.mozilla.org/en-US/docs/Web/API/document.createDocumentFragment

노드를 복제하면 각 개별 노드를 다시 만들지 않고 값을 직접 설정하여 성능이 향상됩니다.

function appendPosts(js){
 var node=document.createElemtnt('div'),
 frag=document.createDocumentFragment();
 node.innerHTML='<div class="post_header"><div class="post_title"></div><div class="post_author"></div><div class="post_date"></div></div><div class="post_content"></div><div class="post_footer"></div>';
 for(var a=0,b;b=js.posts[a];++a){
  var newNode=node.cloneNode(true),
  childs=newNode.childNodes,
  header=childs[0].childNodes;
  header[0].textContent=b.title/*title from Postdata*/;
  header[1].textContent=b.author/*author from Postdata*/;
  header[2].textContent=b.date/*date from Postdata*/;
  childs[1].textContent=b.content/*content from Postdata*/;
  childs[2].textContent=b.footer/*footer from Postdata*/;
  frag.appendChild(newNode);
 }
 document.getElementById('main_content').appendChild(frag);
}

function loadBlogPosts(){
 $.getJSON("http://api.tumblr.com/v2/blog/[MY_BLOG]/info?api_key=[MY_KEY]",
 appendPosts
)

이 기능은 이제 작동합니다 ..하지만 json 응답을 정확히 모르기 때문에 다양한 post 키를 변경해야 할 수도 있습니다.

참고 : 나는 그것이 어떻게 작동하는지 알 수 있도록 조각을 함수에 넣었습니다. appendPosts 함수 안에 postEl 콘텐츠를 넣어야합니다 ... (더 빠릅니다)

질문이 있으면 물어보세요.

편집하다

아니 그들은 글로벌이 아닙니다

var a,b,c,d; // not globals == var a;var b;var c;var d;
var a,b;c;d; // c d = gobal
// , comma affter a var allows you to not write 1000 times var.

EDIT2

 //.......
  frag.appendChild(newNode);
 }
 var topNode=document.createElement('div');
 topNode.className='post';
 topNode.appendChild(frag);
 document.getElementById('main_content').appendChild(topNode);
 //.....

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Div 내부에 동적으로 단락을 추가하려면 어떻게해야합니까?

분류에서Dev

MVC에서 모델 목록 값을 동적으로 추가하려면 어떻게해야합니까?

분류에서Dev

적응 형 블록을 만들고 거기에 블록을 추가하려면 어떻게해야합니까?

분류에서Dev

동적으로 구성된 테이블에 헤더를 추가하려면 어떻게해야합니까?

분류에서Dev

[Dart]와 같이 목록에 데이터를 동적으로 추가하려면 어떻게해야합니까?

분류에서Dev

ssh -K에 대한 토큰 (tgt)을 수동으로 지정하려면 어떻게해야합니까?

분류에서Dev

반복하는 동안 신속하게 큰 배열에서 값을 시간 효율적으로 제거하려면 어떻게해야합니까?

분류에서Dev

전역 적으로 목록 (배열)에 문자열을 추가하려면 어떻게해야합니까?

분류에서Dev

Python에서 매우 큰 2D 목록을 지속적으로 저장하고 효율적으로 액세스하려면 어떻게해야합니까?

분류에서Dev

텍스트 블록을 페이지에 동적으로 추가하려면 어떻게합니까?

분류에서Dev

WebUI (uTorrent)에서 토큰을 얻으려면 어떻게해야합니까?

분류에서Dev

Django에서 블로그 게시물을 HTML 형식으로 지정하려면 어떻게해야합니까?

분류에서Dev

HTML에서 Division 태그가 혼란을 일으키지 않도록하려면 어떻게해야합니까?

분류에서Dev

JSON에서 HTML로 중첩 된 확인란 목록을 동적으로 생성하려면 어떻게해야합니까?

분류에서Dev

ID를 추가하고 각 확인란에 동적으로 레이블을 추가하려면 어떻게해야합니까?

분류에서Dev

양식에서 div로 값을 추가하여 값을 누적하려면 어떻게해야합니까?

분류에서Dev

양식에서 div로 값을 추가하여 값을 누적하려면 어떻게해야합니까?

분류에서Dev

Python : 목록에 재귀 적으로 무언가를 추가하려면 어떻게해야합니까?

분류에서Dev

동적으로 업데이트되는 HTML 테이블의 하단을 안정적으로 추적하려면 어떻게해야합니까?

분류에서Dev

HTML에서 큰 문자열 변수에 랩을 사용하려면 어떻게해야합니까?

분류에서Dev

Django에서 HTML을 표시하기 위해 동적으로 할당 된 위젯을 얻으려면 어떻게해야합니까?

분류에서Dev

Mysql DB에있는 항목 수와 동일한 행을 HTML 테이블에 추가하려면 어떻게해야합니까?

분류에서Dev

Excel 2007에서 과학적 표기법으로 큰 숫자의 서식을 지정하지 않도록하려면 어떻게해야합니까?

분류에서Dev

탭에 탭을 동적으로 추가하려면 어떻게합니까?

분류에서Dev

.net 코어의 큰 JSON 개체에서 하나의 속성을 얻으려면 어떻게해야합니까?

분류에서Dev

Splunk의 대시 보드 쿼리에 토큰을 추가하려면 어떻게해야합니까?

분류에서Dev

HTML 명령 상자가 JavaScript에서 작동하도록하려면 어떻게해야합니까?

분류에서Dev

Vue 전환에서 최대 높이로 동적 값을 추가하려면 어떻게해야합니까?

분류에서Dev

큰 txt 파일을 BigInteger에 빠르게로드하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    Div 내부에 동적으로 단락을 추가하려면 어떻게해야합니까?

  2. 2

    MVC에서 모델 목록 값을 동적으로 추가하려면 어떻게해야합니까?

  3. 3

    적응 형 블록을 만들고 거기에 블록을 추가하려면 어떻게해야합니까?

  4. 4

    동적으로 구성된 테이블에 헤더를 추가하려면 어떻게해야합니까?

  5. 5

    [Dart]와 같이 목록에 데이터를 동적으로 추가하려면 어떻게해야합니까?

  6. 6

    ssh -K에 대한 토큰 (tgt)을 수동으로 지정하려면 어떻게해야합니까?

  7. 7

    반복하는 동안 신속하게 큰 배열에서 값을 시간 효율적으로 제거하려면 어떻게해야합니까?

  8. 8

    전역 적으로 목록 (배열)에 문자열을 추가하려면 어떻게해야합니까?

  9. 9

    Python에서 매우 큰 2D 목록을 지속적으로 저장하고 효율적으로 액세스하려면 어떻게해야합니까?

  10. 10

    텍스트 블록을 페이지에 동적으로 추가하려면 어떻게합니까?

  11. 11

    WebUI (uTorrent)에서 토큰을 얻으려면 어떻게해야합니까?

  12. 12

    Django에서 블로그 게시물을 HTML 형식으로 지정하려면 어떻게해야합니까?

  13. 13

    HTML에서 Division 태그가 혼란을 일으키지 않도록하려면 어떻게해야합니까?

  14. 14

    JSON에서 HTML로 중첩 된 확인란 목록을 동적으로 생성하려면 어떻게해야합니까?

  15. 15

    ID를 추가하고 각 확인란에 동적으로 레이블을 추가하려면 어떻게해야합니까?

  16. 16

    양식에서 div로 값을 추가하여 값을 누적하려면 어떻게해야합니까?

  17. 17

    양식에서 div로 값을 추가하여 값을 누적하려면 어떻게해야합니까?

  18. 18

    Python : 목록에 재귀 적으로 무언가를 추가하려면 어떻게해야합니까?

  19. 19

    동적으로 업데이트되는 HTML 테이블의 하단을 안정적으로 추적하려면 어떻게해야합니까?

  20. 20

    HTML에서 큰 문자열 변수에 랩을 사용하려면 어떻게해야합니까?

  21. 21

    Django에서 HTML을 표시하기 위해 동적으로 할당 된 위젯을 얻으려면 어떻게해야합니까?

  22. 22

    Mysql DB에있는 항목 수와 동일한 행을 HTML 테이블에 추가하려면 어떻게해야합니까?

  23. 23

    Excel 2007에서 과학적 표기법으로 큰 숫자의 서식을 지정하지 않도록하려면 어떻게해야합니까?

  24. 24

    탭에 탭을 동적으로 추가하려면 어떻게합니까?

  25. 25

    .net 코어의 큰 JSON 개체에서 하나의 속성을 얻으려면 어떻게해야합니까?

  26. 26

    Splunk의 대시 보드 쿼리에 토큰을 추가하려면 어떻게해야합니까?

  27. 27

    HTML 명령 상자가 JavaScript에서 작동하도록하려면 어떻게해야합니까?

  28. 28

    Vue 전환에서 최대 높이로 동적 값을 추가하려면 어떻게해야합니까?

  29. 29

    큰 txt 파일을 BigInteger에 빠르게로드하려면 어떻게해야합니까?

뜨겁다태그

보관