前説
昨日今日、東京観光で進捗が出ませんでした。ですので、現在やってる事と過去の話をうまく関連づけて復習感覚で記事をかけたらなと思います。コードは過去に書いたものです。ですので今日は進捗はないです (強調)
Ajaxとは
Railsを書いているとAjaxを勉強することになりました。Ajaxとは非同期通信の仕組みとのことですが、いまいちピンと来ません。過去に書いたコードから文法をみていきたいと思います。次回はもう少し、踏み込んだ説明をしていきたいと思います。
MESHとAjax
MESHとは、センサーを埋め込んだブロック状のタグを端末とBluetoothで接続できる優れたハードウェアです。2017年末よりRaspberryPiとも連携ができるようになり。筆者も試してみましたが、RaspberryPiをサーバーとのハブ代わりにできるので使いやすいです!
ここでは、独自のタグ製作を簡易的にソフトウェア開発キットを用いて行いました。その時の言語がJavaScript、通信方法Ajaxだったわけです。(当時はJavaScriptさっぱりだったので探りながら書いた)
MESH_SDK.js
//エンドポイントはEC2などを借りるとデータの送信先としての機能を持ってくれます。
var endPointURL2 = "(エンドポイントURL)"
//センサーデータ取得
//MESHのタグから数値的な値を取得してくれるメソッドです。
var temperature = messageValues.temperatureValue;
var humidity = messageValues.humidityValue;
var nowdata = " humidity :" +humidity + " temperature : " + temperature;
log(nowdata);
//JSONデータ生成
var jsonData2 = {
"temperature" : temperature,
"humidity" : humidity
}
//APIを叩く際のパラメータ
//プロパティの値を渡す
var sendData2 = JSON.stringify(jsonData2);
log(sendData2);
log(nowdata);
//ajaxの中身設定
//JSONデータをURLにPOST
ajax ({
url : endPointURL2,
type : "post",
data : sendData2,
contentType : "application/json",
dataType : "json",
timeout : 5000,
//コールバック関数
success : function ( contents ) {
log("POST success");
log(JSON.stringify(contents));
callbackSuccess( {
resultType : "continue"
} );
},
//エラー処理とエラーの形式を表示
error : function ( request, errorMessage ) {
log("POST error");
log("detail: " + JSON.stringify(request));
callbackSuccess( {
resultType : "continue"
} );
}
});
return {
resultType : "pause"
};
やっぱりJavaScriptもう少し勉強しないといけない(戒め
JavaScriptでAjax採用でも書き方が全く違う...
次回
いいね機能のAjaxとRailsの関連性、form_forとの繋がりをみていこうと思います。