1. naoiwata

    No comment

    naoiwata
Changes in body
Source | HTML | Preview
@@ -1,68 +1,72 @@
-## やりたいこと: Javascript からサーバの時刻を取得したい
+## 目的
+
+### 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
```
レスポンスヘッダに含まれる Date の値を取得して使いたいときのチップスです.
## サーバの時刻を取得する
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
```
+## 結果 & 感想
+
非同期なのでしょうがないのでしょうか... もっとシンプルに書きたかったのですが. 良いライブラリがないか探してみます.