A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは
詳しい回答が既にされていますので、使用している一例を・・
googleなどの地図サービスをご覧になったことがあると思いますが、
・表示位置を移動する
・拡大・縮小する
・地図と航空写真を切り替える
などの操作をユーザが行った際に、必要となる(追加の新しい)情報をリクエストして表示していると考えられます。
拡大・縮小の際には、縮尺によって表示している地図全体を入れ替えたりしていますし、地図と写真の切り替えの場合も同様ですね。
付帯的に表示されている、特定スポットの情報なども同様に受信しているものと考えられます。
一方で、操作に応じて新しいURLに遷移するような方式だったとすると、都度、画面全体が書き直しになるので、チラつきの原因にもなりますし、閲覧者にとって必ずしも見やすくはないことが想像されます。
仮に、通信環境が悪い場合でも、部分的なリクエストであれば、その部分の表示に若干の時間がかかるものの、全体構成の表示は保たれますので、比較的スムーズに閲覧ができるものと思います。
No.1
- 回答日時:
ajax、非同期通信と呼ばれる手法を利用することで、ページ遷移をすることなくサーバーサイドへ通信し、制御を行うことができます。
これによって、例えば、下記のようなことがブラウザがフリーズすることなく行えます。
・プルダウンA、プルダウンBがあり、プルダウンAの選択に応じて
プルダウンBの選択肢が変わる。
・処理中のローディングを画面に表示し、データの登録処理などが
完了したらローディングが消えて、「登録しました」のメッセージ
を表示する。
これ自体はフレームワークがなくてもできますが、まぁフレームワークを使うことが大半ですね。
ではどうやってデータを通信するのかですが、当たり前ですが、クライアントからのリクエストとサーバーからのレスポンスがあります。
フレームワークによって構文は違うので、フレームワークの作法に応じてデータの送受信を行います。
リクエスト
通常の画面遷移(<form type="submit">)と同じです。
GETによる通信なら、URLにパラメータが付与される形になります。
POSTによる通信なら、必要なデータをPOSTデータとして設定します。
POSTデータは、様々な制御をした上で、JSONとしたり、
それは設計に応じて行えばいいです。
レスポンス
非同期通信なわけですから、レスポンスは画面を表示するための
HTMLではありません。
今の時代、大抵がJSON形式となります。
クライアントは受け取ったJSONを解析して制御することになります。
サーバーサイドは、レスポンスをJSONとして返却する形になります。
様々なエラーが発生した場合はHTTPステータスコードを状況に
応じたもので返却する必要があります。
200 OKではなく、400 Bad Request、401 Unauthorized、
403 Forbidden、500 Internal Server Errorなど。
なお、Webシステム全体としては、URLとリクエストデータが分かってしまえば、ブラウザやpostmanなどのWebAPI通信を実施できるツール、悪意のあるスクリプトなどからリクエストして処理ができてしまいます。
無条件公開して問題ないものは、リクエストの検証がしっかり行われていれば問題ありません。
しかし、そうでないものもあります。
・ユーザー認証などがされていないと処理が動作して欲しくない
・特定画面からの特定操作が行われないと動作して欲しくない
といったものがそれに当たります。
それらは、処理が許可されるべきものなのかというセキュリティ制御を、トークンやそれに紐づく認証情報などを利用して、サーバーサイドとして実装する必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) .netに近いjsフレームワークは何ですか 2 2022/05/12 22:28
- JavaScript javascript で外部サイトにデータ入力させて自動でボタンを押すことは可能ですか? 1 2023/01/30 16:23
- JavaScript API連携のプログラミングについて(Typescript) 2 2023/05/03 11:00
- JavaScript SQLでデータベースから返ったデータのJSON形式生成について 1 2022/04/06 12:25
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- Instagram HTML5の廃止とJavaScript 2 2022/04/13 21:05
- その他(ブログ) 趣味を紹介するブログを開設したいです。おすすめの方法を教えてください。 1 2022/12/14 20:11
- PHP クラス 1 2022/08/08 15:12
- JavaScript 変数のスコープの問題? 3 2022/06/23 09:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<div>のタッチ状態を維持したま...
-
フォームが空欄の時にフォーム...
-
プラグイン無しでContactform7...
-
変数名をどのようにつけるのが...
-
階層別の組織図の自動作成について
-
条件に該当した時のみ定数を宣...
-
2段階プルダウンで1段階目の選...
-
読み込んだQRコードをフォーム...
-
初心者です。gulpでコンパイル...
-
正規表現について質問です。条...
-
jQueryでシンセサイザーを作っ...
-
メールフォームの日付入力フォ...
-
二次元配列を使って順位をだす...
-
二次元配列の中の各行の要素を...
-
出発駅A、到着駅Bを選択すると...
-
スマホ上で、左右スワイプで次...
-
【Google Apps Script】「ライ...
-
jQueryで同じクラス名のものを...
-
①入力フォーム→②確認表示画面→③...
-
プログラムについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
直近のアクセスページの履歴を...
-
DOMで追加した要素が「前に戻る...
-
鑑定や占いみたいなものを作り...
-
htmlとCSSでできる仕事
-
javaエラーで、開けない
-
2つのAjaxベースのjavascriptが...
-
javascriptのみで作成されたス...
-
どのサイトもjavascriptは使わ...
-
wordpress などのcmsの普及によ...
-
javascript入門 超簡単
-
formのselect要素を一覧から選...
-
javascriptでサイト内検索でき...
-
JSPの処理の途中で、JavaScript...
-
VB.NET2003 テキストボックスに...
-
JavaScriptで ブラウザの閉じる...
-
「終了していない文字列型の定...
-
gas 全角数字を半角数字に変換
-
if(1){...}とはどういうことで...
-
正整数の半角数字かどうか判定する
-
htmlのfileタグに自動で値を入...
おすすめ情報
サーバーサイドはJavaやPHPです。