1. naoiwata

    No comment

    naoiwata
Changes in body
Source | HTML | Preview
@@ -1,48 +1,66 @@
非同期なのでしょうがないのでしょうか... もっとシンプルに書きたかったのですが.
+## やりたいこと: Javascript からサーバの時刻を取得したい
+
+```
+$ curl -I http://example.com
+HTTP/1.1 200 OK
+Accept-Ranges: bytes
+Cache-Control: max-age=604800
+Content-Type: text/html
+Date: Tue, 22 Apr 2014 14:57:58 GMT ## <= これを取得したい!
+Etag: "359670651"
+Expires: Tue, 29 Apr 2014 14:57:58 GMT
+Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
+Server: ECS (cpm/F858)
+X-Cache: HIT
+x-ec-custom-error: 1
+Content-Length: 1270
+```
+
## サーバの時刻を取得する
callback 関数の引数がサーバからのレスポンスの Date ヘッダを返す関数をつくっておきました.
```coffee
get_time = ->
dfd = $. Deferred()
$.ajax
type: 'GET',
url: '',
cache: false
.done (res, status, xhr) ->
date = new Date(xhr.getResponseHeader('Date'))
return dfd.resolve(date)
return dfd.promise()
# 使い方
get_time().done (date) ->
console.info(date) # Tue Apr 22 2014 19:30:43 GMT+0900 (JST)
```
## 何か JSON を取得したついでにそのサーバの Date ヘッダも欲しい
```coffee
get_json = (url, success_proc, fail_proc) ->
$.ajax
dataType: 'json',
url: url,
cache: false
.done (res, status, xhr) ->
date = new Date(xhr.getResponseHeader('Date'))
return success_proc(res, date)
.fail ->
fail_proc()
# 使い方
get_json 'hoge.json', (res, date) ->
## 成功時の処理
console.info(date) # Tue Apr 22 2014 19:30:43 GMT+0900 (JST)
, ->
## 失敗時の処理
return
```
すっきりしないですね. 良いライブラリがないか探してみます.