基本情報技術者 2010年 秋期 午前(科目A) 問49
問題文
JavaScriptの非同期通信の機能を使うことによって、動的なユーザインタフェースを画面遷移を伴わずに実現する技術はどれか。
選択肢
ア:Ajax(正解)
イ:CSS
ウ:RSS
エ:SNS
🔒 解説は解答すると表示されます
Ajaxを用いた動的UI【午前解説】
正解の理由
設問が示す「非同期通信を使い、画面遷移を伴わずに動的なユーザインタフェースを実現する技術」に該当するのは ア のAjaxです。Ajaxはブラウザ上でJavaScriptからHTTP等の通信を非同期に行い、受け取ったデータでDOMを更新することでページ全体の再読み込み(画面遷移)なしに表示内容を変えられます。実装手段としては従来のXMLHttpRequestや、現在では主にfetch APIとJSONを用いるのが一般的です。
同じ文脈で登場する用語の整理:
- Same‑Origin Policy(同一生成元ポリシー)はブラウザが持つセキュリティ制約(スキーム、ホスト、ポートが一致することを要求)です。
- CORS(Cross‑Origin Resource Sharing)は、サーバ側がHTTPヘッダ(例:Access‑Control‑Allow‑Origin)を使ってその制約を緩和する仕組みで、SOPそのものではなくSOPを調整するための仕組みです。
解法ステップ
- 問題文からキーワードを抽出:「非同期通信」「画面遷移を伴わず」「動的なユーザインタフェース」。
- 各選択肢の機能を照合:
- Ajax:非同期通信でデータ取得→DOM更新(該当)
- CSS:見た目(スタイル)を指定する言語(非該当)
- RSS:配信フォーマット(非該当)
- SNS:サービスの種類(非該当)
- 最も一致する技術を選ぶ → ア(Ajax)。
選択肢別の誤答解説
-
ア Ajax
Ajaxは非同期にサーバとやり取りし、受け取ったデータでページの一部を更新する手法全般を指します。XMLという名前が付いていますが、実際はJSONを使うことが多く、fetchやXMLHttpRequestが利用されます。よって設問の要件に合致します。 -
イ CSS
CSSは文書の見た目(レイアウト・色・フォントなど)を定義するスタイル言語で、通信やデータ取得機能は持ちません。非同期通信で画面遷移を伴わない更新を実現する技術ではありません。 -
ウ RSS
RSSは主にコンテンツ配信(ニュースフィード等)のためのXMLベースのフォーマットです。クライアント側のUI更新メカニズムではなく、配信データの形式に過ぎません。 -
エ SNS
SNS(ソーシャル・ネットワーキング・サービス)はサービスの種類であり、UI更新のための技術そのものではありません。SNS上のインターフェースでAjaxが使われることは多いですが、SNS自体は解答になりません。
よくある誤解
-
Ajax=XMLだと思い込む
「Ajax」は歴史的名称(Asynchronous JavaScript And XML)ですが、現実的にはJSONを使うことが圧倒的に多いです。XMLに限定されません。 -
同一生成元ポリシー(SOP)とCORSを同一視する
SOPはブラウザのセキュリティ制約、CORSはその制約を緩和するためのサーバ側の仕組みです。両者は役割が異なります。 -
Ajaxは単一のAPIだと考える
Ajaxは概念/手法であり、実装にはXMLHttpRequestやfetch、さらにライブラリ(axios等)やフレームワーク(React/VueのHTTP層)を使います。
補足コラム
- 短いコード例(fetchで非同期取得しDOMを更新する例):
// 非同期にJSONを取得して画面の一部を更新する例
fetch('/api/data')
.then(response => {
if (!response.ok) throw new Error('HTTP error ' + response.status);
return response.json();
})
.then(data => {
document.getElementById('result').textContent = data.message;
})
.catch(err => console.error('通信エラー:', err));
-
Same‑Origin Policyの判定基準:スキーム(http/https)、ホスト(ドメイン)、ポートの3要素が全て一致する必要があります。CORSを利用する場合、サーバはレスポンスヘッダで許可を明示します(例:Access‑Control‑Allow‑Origin: https://example.com)。
-
歴史的背景:Ajaxという用語が注目されたのは2000年代初頭で、これにより「ページ全体を再読み込みしないインタラクティブなWeb」が標準化され、後のSPA(Single Page Application)やリアクティブフレームワークの基盤となりました。
FAQ
Q1: Ajaxとfetchは同じですか?
A1: fetchはブラウザのネイティブAPIの一つで、Ajax的な非同期通信を行うための手段の一つです。Ajaxは手法の総称で、fetchやXMLHttpRequestを含みます。
A1: fetchはブラウザのネイティブAPIの一つで、Ajax的な非同期通信を行うための手段の一つです。Ajaxは手法の総称で、fetchやXMLHttpRequestを含みます。
Q2: 非同期通信を使えば必ず画面遷移が起きないのですか?
A2: 非同期通信自体は画面遷移を伴わない通信手段ですが、アプリ側の実装次第でページ遷移やリダイレクトを起こすことも可能です。一般的には画面遷移なしで部分更新を行うのが目的です。
A2: 非同期通信自体は画面遷移を伴わない通信手段ですが、アプリ側の実装次第でページ遷移やリダイレクトを起こすことも可能です。一般的には画面遷移なしで部分更新を行うのが目的です。
Q3: CORS設定はクライアントで行うべきですか、それともサーバですか?
A3: CORSの許可はサーバ側でHTTPレスポンスヘッダを設定して行います。クライアント側でヘッダを勝手に付けても、サーバが許可しなければブラウザがブロックします。
A3: CORSの許可はサーバ側でHTTPレスポンスヘッダを設定して行います。クライアント側でヘッダを勝手に付けても、サーバが許可しなければブラウザがブロックします。
関連キーワード: Ajax、非同期通信、DOM操作、fetch、XMLHttpRequest、Same‑Origin Policy、CORS、JSON、SPA、動的UI、部分更新、HTTPヘッダ

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

