Requests - zziuni/d3 GitHub Wiki

Wiki β–Έ API Reference β–Έ Core β–Έ Requests

데이터 μ‹œκ°ν™”λ₯Ό λ…Όν•˜κΈ° 전에 우린 λ¨Όμ € 데이터λ₯Ό 가져와야 ν•œλ‹€. 데이터λ₯Ό λΈŒλΌμš°μ €λ‘œ κ°€μ Έμ˜€λŠ” 방법은 μ—¬λŸ¬ 가지가 μžˆλ‹€. 데이터 μ„ΈνŠΈκ°€ μž‘λ‹€λ©΄ μŠ€ν¬λ¦½νŠΈμ— ν•„μš”ν•œ 값을 ν•˜λ“œμ½”λ”©μœΌλ‘œ κ·Έλƒ₯ 넣을 수 μžˆλ‹€. μ•„λ‹ˆλ©΄ 데이터λ₯Ό λ³€μˆ˜λ‘œ μ •μ˜ν•œ λ³„λ„μ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ νŒŒμΌμ„ 뢈러올 μˆ˜λ„ μžˆλ‹€. (JSONPκ°€ 이에 해당함) HTML5도 data 속성λ₯Ό μ‚¬μš©ν•΄μ„œ λ¬Έμ„œμ— 직접 데이터λ₯Ό λ‚΄μž₯μ‹œν‚€λŠ” 방법을 μ œκ³΅ν•œλ‹€. ν•˜μ§€λ§Œ λΈŒλΌμš°μ €λ‘œ 데이터λ₯Ό λΆˆλŸ¬μ˜€λŠ” κ°€μž₯ λ„λ¦¬μ“°μ΄λŠ” 방법은 XMLHttpRequest 즉, XHR 이닀. XHR은 데이터λ₯Ό λΉ„λ™κΈ°λ‘œ 뢈러올 수 있으며 (κ·Έλž˜μ„œ 데이터λ₯Ό κ°€μ Έμ˜€λŠ” λ™μ•ˆ νŽ˜μ΄μ§€κ°€ λΉ„μ–΄ 보일 수 μžˆλ‹€.), JSONP보닀 μ•ˆμ „ν•˜λ‹€. D3λŠ” νŒŒμΌμ—μ„œ 데이터λ₯Ό μ‰½κ²Œ λΆˆλŸ¬μ˜€λŠ” 핼퍼 λ©”μ„œλ“œλ₯Ό λ‹€μ–‘ν•˜κ²Œ μ œκ³΅ν•œλ‹€.

λΉ„λ™κΈ°λ‘œ 데이터λ₯Ό 뢈러올 λ•Œ, 데이터 λ‘œλ”©κ³Ό κ΄€λ ¨λœ μ½”λ“œλŠ” 보톡 콜백 ν•¨μˆ˜ μ•ˆμ— μžˆμ–΄μ•Ό ν•œλ‹€. D3 μ‚¬μ΄νŠΈμ˜ calendar visualizationκ°€ κ·Έ κ²½μš°λ‹€. 데이터와 κ΄€λ ¨ μ—†λŠ” μ½”λ“œλŠ” νŽ˜μ΄μ§€κ°€ λ‘œλ“œ 될 λ•Œ λ°”λ‘œ μ‹€ν–‰ν•  수 μžˆλ‹€. νŠΈλžœμ§€μ…˜λ₯Ό μ§€μ†ν•˜λŠ” μž‘μ—…κ°™μ΄ 초기 λ Œλ”λ§ 후에 데이터에 μ ‘κ·Όν•  수 μžˆλ„λ‘ 뢈러온 데이터λ₯Ό κΈ€λ‘œλ²Œ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ μ €μž₯ν•˜λŠ” 게 νŽΈν•  μˆ˜λ„ μžˆλ‹€. 이λ₯Ό μœ„ν•΄μ„œ ν΄λ‘œμ €λ₯Ό μ‚¬μš©ν•  μˆ˜λ„ 있고 단지 μ „μ—­λ³€μˆ˜μ— 뢈러온 데이터λ₯Ό ν• λ‹Ήν•  μˆ˜λ„ μžˆλ‹€.

var data; // a global

d3.json("path/to/file.json", function(json) {
  data = json;
  visualizeit();
});

기본적으둜 λΈŒλΌμš°μ €λŠ” 크둜슀 도메인 μš”μ²­μ΄ λΆˆκ°€λŠ₯ν•˜λ‹€. (둜컬 파일 μ‹œμŠ€ν…œμ—μ„œλ„ λ§ˆμ°¬κ°€μ§€λ‹€. κ·Έλž˜μ„œ READMEμ—μ„œλŠ” 예제λ₯Ό λ„μšΈ 둜컬 μ›Ήμ„œλ²„ μ‚¬μš©μ„ ꢌμž₯ν•œλ‹€.) κ·Έλž˜μ„œ 이런 λ³΄μ•ˆ μ œν•œμ„ μš°νšŒν•˜κΈ° μœ„ν•΄μ„œ JSONPλ₯Ό μ‚¬μš©ν•  수 μžˆλŠ”λ°, 이 방법은 μ™ΈλΆ€ μ‚¬μ΄νŠΈκ°€ μž„μ˜λ₯Ό μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‹€ν–‰ ν•  수 있기 λ•Œλ¬Έμ— λ³΄μ•ˆμ μΈ λ©΄μ—μ„œ μ•ˆμ „ν•˜μ§€ μ•Šλ‹€. λŒ€μ‹ μ—, Access-Control-Allow-Origin: * HTTP 해더λ₯Ό μ‚¬μš©ν•˜μž. μ΄λŠ” λΈŒλΌμš°μ €μ˜ μ•ˆμ „ν•œ ν™•μž₯ λ¦¬μ†ŒμŠ€ μš”μ²­μ„ 보μž₯ν•œλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ W3CκΆŒκ³ μ•ˆ Cross-Origin Resource Sharingλ₯Ό μ°Έκ³ ν•œλ‹€.

Issuing Requests

# d3.xhr(url[, mime], callback)

url 둜 HTTP GET μš”μ²­μ„ λ‚ λ¦°λ‹€. "application/json"같은 mime νƒ€μž…μ„ 두 번째 μ „λ‹¬μΈμžλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€. μš”μ²­μ€ λΉ„λ™κΈ°λ‘œ λ™μž‘ν•΄μ„œ μš”μ²­μ„ μ—° 후에 이 λ©”μ„œλ“œλŠ” λ°”λ‘œ λ°˜ν™˜λœλ‹€. 데이터가 μ‚¬μš©κ°€λŠ₯ν•΄μ‘Œμ„ λ•Œ, μ§€μ •ν•œ callback 이 XMLHttpRequest 객체λ₯Ό 인자둜 λ°›μœΌλ©° ν˜ΈμΆœλœλ‹€. μ—λŸ¬κ°€ λ°œμƒν•˜λ©΄ 콜백 ν•¨μˆ˜λŠ” null 인자λ₯Ό λ°›μ•„μ„œ μ‹€ν–‰λœλ‹€.

이 λ©”μ„œλ“œλŠ” 일반적으둜 직접 μ‚¬μš©ν•  일은 μ—†κ³ , 데이터 νƒ€μž…λ³„λ‘œ λ©”μ„œλ“œμ€‘ ν•˜λ‚˜λ₯Ό μ‚¬μš©ν•œλ‹€. 예λ₯Ό λ“€μ–΄ 일반 ν…μŠ€νŠΈλŠ” text, JSON은 json, XML은 xml, HTML은 html, CSV νŒŒμΌμ€ csvλ₯Ό μ‚¬μš©ν•œλ‹€.

# d3.text(url[, mime], callback)

url 둜 ν…μŠ€νŠΈ νŒŒμΌμ„ μœ„ν•œ HTTP GET μš”μ²­μ„ λ‚ λ¦°λ‹€. "text/plain" 같은 mine νƒ€μž…μ„ 두 번째 μ „λ‹¬μΈμžλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€. μš”μ²­μ€ λΉ„λ™κΈ°λ‘œ λ™μž‘ν•΄μ„œ μš”μ²­μ„ μ—° 후에 이 λ©”μ„œλ“œλŠ” λ°”λ‘œ λ°˜ν™˜λœλ‹€. ν…μŠ€νŠΈκ°€ μ‚¬μš©κ°€λŠ₯ν•΄μ‘Œμ„ λ•Œ, μš”μ²­κ°μ²΄μ˜ responseText 속성에 ν…μŠ€νŠΈ λ¬Έμžμ—΄μ„ 인자둜 λ°›μœΌλ©° μ§€μ •ν•œ callback 이 ν˜ΈμΆœλœλ‹€. μ—λŸ¬κ°€ λ°œμƒν•˜λ©΄ 콜백 ν•¨μˆ˜λŠ” null 인자λ₯Ό λ°›μ•„μ„œ μ‹€ν–‰λœλ‹€.

# d3.json(url, callback)

url 둜 JSONνŒŒμΌμ„ μœ„ν•œ HTTP GET μš”μ²­μ„ λ‚ λ¦°λ‹€. μ΄λ•Œ mine νƒ€μž…μ€ "application/json” 이닀. μš”μ²­μ€ λΉ„λ™κΈ°λ‘œ λ™μž‘ν•΄μ„œ μš”μ²­μ„ μ—° 후에 이 λ©”μ„œλ“œλŠ” λ°”λ‘œ λ°˜ν•œλœλ‹€.
ν…μŠ€νŠΈκ°€ μ‚¬μš©κ°€λŠ₯해지면 μš”μ²­κ°μ²΄μ˜ responseText 속성 값을 νŒŒμ‹±ν•œ JSON κ²°κ³Ό(보톡은 파일 λ‚΄μš©μ„ ν† λŒ€λ‘œν•œ κ°μ²΄λ‚˜ λ°°μ—΄)λ₯Ό 인자둜 λ„˜κ²¨μ„œ callback 을 ν˜ΈμΆœν•œλ‹€. μ—λŸ¬κ°€ λ°œμƒν•˜λ©΄ 콜백 ν•¨μˆ˜λŠ” null 인자λ₯Ό λ°›μ•„μ„œ μ‹€ν–‰λœλ‹€.

# d3.xml(url[, mime], callback)

url 둜 XML νŒŒμΌμ„ μœ„ν•œ HTTP GET μš”μ²­μ„ λ‚ λ¦°λ‹€. "application/xml"같은 mime νƒ€μž…μ„ 두 번째 μ „λ‹¬μΈμžλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€. μš”μ²­μ€ λΉ„λ™κΈ°λ‘œ λ™μž‘ν•΄μ„œ μš”μ²­μ„ μ—° 후에 이 λ©”μ„œλ“œλŠ” λ°”λ‘œ λ°˜ν™˜λœλ‹€. XML λ‚΄μš©μ΄ μ‚¬μš©κ°€λŠ₯ν•΄λ©΄ μš”μ²­κ°μ²΄μ˜ responseXML μ†μ„±μ—μ„œ 뢈러온 XML λ‚΄μš©μ˜ root(document) λ¬Έμ„œμš”μ†Œλ₯Ό 인자둜 λ„˜κ²¨μ„œ callback 을 ν˜ΈμΆœν•œλ‹€. μ—λŸ¬κ°€ λ°œμƒν•˜λ©΄ 콜백 ν•¨μˆ˜λŠ” null 인자λ₯Ό λ°›μ•„μ„œ μ‹€ν–‰λœλ‹€.

# d3.html(url, callback)

url 둜 HTML νŒŒμΌμ„ μœ„ν•œ HTTP GET μš”μ²­μ„ λ‚ λ¦°λ‹€. mime νƒ€μž…μ€ "text/html"λ₯Ό μ‚¬μš©ν•œλ‹€. μš”μ²­μ€ λΉ„λ™κΈ°λ‘œ λ™μž‘ν•΄μ„œ μš”μ²­μ„ μ—° 후에 이 λ©”μ„œλ“œλŠ” λ°”λ‘œ λ°˜ν™˜λœλ‹€. HTML λ‚΄μš©μ΄ μ‚¬μš©κ°€λŠ₯해지면 뢈러온 HTML λ‚΄μš©μ˜ root (document) λ¬Έμ„œμš”μ†Œλ₯Ό 인자둜 λ„˜κ²¨μ„œ callback 을 ν˜ΈμΆœν•œλ‹€.μ—λŸ¬κ°€ λ°œμƒν•˜λ©΄ 콜백 ν•¨μˆ˜λŠ” null 인자λ₯Ό λ°›μ•„μ„œ μ‹€ν–‰λœλ‹€.

# d3.csv(url, callback)

CSVλ₯Ό μ°Έκ³ .

⚠️ **GitHub.com Fallback** ⚠️