🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Q&A

解決済

1回答

661閲覧

Jqueryで非同期実行?

AMK

総合スコア765

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

0グッド

0クリップ

投稿2019/09/22 19:19

編集2019/09/22 19:24

現在、Jsonを取得してHTMLに書き込む処理をしているのですが
現在のコードですとUSDJPYから随時処理をしていくので
最後のEURUSDまでに若干のタイムラグがあるので
タイムラグを最小限にしたい場合、どのようなアプローチが有効でしょうか?

そもそもJqueryよりPHPにした方が良いなど
コードの改善点教えて頂けると助かります

<実行環境>
CentOS7
VPS root権限有り
Laravel 5.7

javascript

1<script type="text/javascript"> 2$(document).ready(function (){ 3 setInterval(function() { 4 $.ajax({ 5 type: 'GET', 6 scriptCharset: 'utf-8', 7 url: 'http://11x.2x.35.38:1129/api2', //アドレスは仮のアドレスです 8 cache: false, 9 dataType: 'json', 10 success: function(data) { 11         //USDJPY 12 $('.usdjpy tr.highlow td.buy').text(data.Highlow.USDJPY.Buy); 13 $('.usdjpy tr.highlow td.sell').text(data.Highlow.USDJPY.Sell); 14 15 $('.usdjpy tr.gmo td.buy').text(data.GMO.USDJPY.Buy); 16 $('.usdjpy tr.gmo td.sell').text(data.GMO.USDJPY.Sell); 17 18 $('.usdjpy tr.oanda td.buy').text(data.Oanda.USDJPY.Buy); 19 $('.usdjpy tr.oanda td.sell').text(data.Oanda.USDJPY.Sell); 20 21 //EURJPY 22 $('.eurjpy tr.highlow td.buy').text(data.Highlow.EURJPY.Buy); 23 $('.eurjpy tr.highlow td.sell').text(data.Highlow.EURJPY.Sell); 24 25 $('.eurjpy tr.gmo td.buy').text(data.GMO.EURJPY.Buy); 26 $('.eurjpy tr.gmo td.sell').text(data.GMO.EURJPY.Sell); 27 28 $('.eurjpy tr.oanda td.buy').text(data.Oanda.EURJPY.Buy); 29 $('.eurjpy tr.oanda td.sell').text(data.Oanda.EURJPY.Sell); 30 31 //GBPJPY 32 $('.gbpjpy tr.highlow td.buy').text(data.Highlow.GBPJPY.Buy); 33 $('.gbpjpy tr.highlow td.sell').text(data.Highlow.GBPJPY.Sell); 34 35 $('.gbpjpy tr.gmo td.buy').text(data.GMO.GBPJPY.Buy); 36 $('.gbpjpy tr.gmo td.sell').text(data.GMO.GBPJPY.Sell); 37 38 $('.gbpjpy tr.oanda td.buy').text(data.Oanda.GBPJPY.Buy); 39 $('.gbpjpy tr.oanda td.sell').text(data.Oanda.GBPJPY.Sell); 40 41 //EURUSD 42 $('.eurusd tr.highlow td.buy').text(data.Highlow.EURUSD.Buy); 43 $('.eurusd tr.highlow td.sell').text(data.Highlow.EURUSD.Sell); 44 45 $('.eurusd tr.gmo td.buy').text(data.GMO.EURUSD.Buy); 46 $('.eurusd tr.gmo td.sell').text(data.GMO.EURUSD.Sell); 47 48 $('.eurusd tr.oanda td.buy').text(data.Oanda.EURUSD.Buy); 49 $('.eurusd tr.oanda td.sell').text(data.Oanda.EURUSD.Sell); 50 }, 51 error: function() { 52 alert("読み込み失敗"); 53 } 54 }); 55 }, 800); 56}); 57</script>

json

1{"time":"2019-09-23T03:59:20.94337827+09:00","GMO":{"USDJPY":{"Buy":107.542,"Sell":107.539},"EURJPY":{"Buy":118.505,"Sell":118.5},"GBPJPY":{"Buy":134.2,"Sell":134.19},"EURUSD":{"Buy":1.10188,"Sell":1.10184}},"Highlow":{"USDJPY":{"Buy":107.594,"Sell":107.515},"EURJPY":{"Buy":118.567,"Sell":118.489},"GBPJPY":{"Buy":134.249,"Sell":134.149},"EURUSD":{"Buy":1.10223,"Sell":1.10141},"Oanda":{"USDJPY":{"Buy":107.594,"Sell":107.515},"EURJPY":{"Buy":118.567,"Sell":118.489},"GBPJPY":{"Buy":134.249,"Sell":134.149},"EURUSD":{"Buy":1.10223,"Sell":1.10141}}}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

JSONデータはUSDJPYからEURUSDまで同時に取得しているようですので
エレメント(DOM)の取得とtextのセットのタイムラグということになりますが、
エレメントの取得に関してはクラスやタグを並べるよりID一発で取得したほうが高速です。

$('.usdjpy tr.highlow td.buy').text(data.Highlow.USDJPY.Buy);

<td id="usdjpy_highlow_buy'"> とIDを設定した上で $('#usdjpy_highlow_buy').text(data.Highlow.USDJPY.Buy);

また、JQueryにこだわらないなら
JQueryを使わずにgetElementByIdを使ったほうが高速です。

投稿2019/09/22 20:16

shun-K

総合スコア508

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AMK

2019/09/23 00:38

ありがとうございます。 document.getElementById('usdjpy_highlow_buy').innerText = data.Highlow.USDJPY.Buy; この方法で実装できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問