戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報処理安全確保支援士 2025年 秋期 午前218


問題文

JavaScriptなどのスクリプト言語を使って、Webブラウザに組み込まれているサーバとの非同期通信機能を利用する技術であり、地図の高速なスクロールや、キーボード入力に合わせた検索候補の逐次表示を実現するものはどれか。

選択肢

Ajax(正解)
CSS
DOM
SAX

##: JavaScriptなどのスクリプト言語を使って、Webブラウザに組み込まれているサーバとの非同期通信機能を利用する技術であり、地図の高速なスクロールや、キーボード入力に合わせた検索候補の逐次表示を実現するものはどれか。【午前2 解説】

要点まとめ

  • 結論:ブラウザとサーバ間を非同期にやり取りし部分的に表示を更新する技術は Ajax(アジャックス)で正解です。
  • 根拠:XMLHttpRequest や Fetch API を使いページ全体を再読み込みせずにデータ取得と DOM 更新を行う点が一致します。
  • 差がつくポイント:Ajax は単一 API ではなく手法であり、Fetch/XHR、JSON、CORS、デバウンス等を理解すると実装力で差が出ます。

正解の理由

Ajax は「Asynchronous JavaScript and XML」の略で、JavaScript を使ってブラウザとサーバ間で非同期にデータを送受信し、受け取ったデータで DOM を部分更新する手法です。地図の高速スクロールや入力に応じた候補表示(オートコンプリート)は、ページ全体を再読み込みせずに必要なデータだけを都度取得して表示を変えることが必要であり、これを実現するのが Ajax の典型的用途です。最近は XML よりも JSON を用い、XMLHttpRequest に加え Fetch API が使われますが、用途と挙動は同じカテゴリです。

よくある誤解(2〜3 行)

  • 「Ajax は固有のライブラリや製品」だと誤解されますが、実際は非同期通信を行う実装手法の総称です。
  • 「DOM や CSS が Ajax と同義」ではなく、DOM は文書構造、CSS は見た目制御、役割が異なります。

解法ステップ(番号付きリスト)

  1. 問題文からキーワードを抽出:「非同期通信」「ブラウザに組み込まれているサーバとの」「逐次表示(部分更新)」を確認する。
  2. 選択肢の意味を整理:CSS(見た目)、DOM(文書モデル)、SAX(ストリーミング XML パーサ)を即座に除外する。
  3. 非同期通信と部分更新に該当する語を選ぶ:Ajax が該当するため正解と判断する。
  4. 実装例をイメージできるか確認:XMLHttpRequest / Fetch / JSON を使った更新が思い浮かべば確信が持てる。
  5. 設問の用途(地図スクロール、候補表示)と合致するか最終チェックする。

選択肢別の誤答解説

  • ア: Ajax — 正答。JavaScript による非同期サーバ通信で部分的 DOM 更新を行う手法で、問題の用途に合致します。
  • イ: CSS — 誤り。スタイル(色・レイアウト・フォント等)を指定する言語で、通信や非同期処理とは無関係です。
  • ウ: DOM — 誤り。Document Object Model は HTML/XML 文書の構造と操作インターフェースであり、通信手法ではありません。
  • エ: SAX — 誤り。Simple API for XML はストリーミング XML パーサで、サーバサイドやクライアントの XML 解析で使われますが、非同期通信そのものを指しません。

補足コラム(関連知識など)

  • 実装に用いる代表的 API:XMLHttpRequest(古典)、Fetch API(最新)と Promise、さらに axios などのライブラリ。
  • 注意点:同一オリジンポリシーと CORS 設定、レスポンス形式(JSON の方が扱いやすい)、通信頻度を抑えるデバウンスやキャッシュ戦略が重要です。
  • 比較:WebSocket は双方向かつ持続接続でリアルタイム性が高く、Ajax はリクエスト/レスポンス型の都度通信に向きます。
  • 実装例(簡易的なオートコンプリート):
// 簡易例: フェッチ+デバウンスで候補取得
let timer = null;
const input = document.querySelector('#q');
input.addEventListener('input'、(e) => {
  clearTimeout(timer);
  const q = e.target.value;
  if (!q) return;
  timer = setTimeout(() => {
    fetch(`/suggest?q=${encodeURIComponent(q)}`)
      .then(res => res.json())
      .then(items => {
        // DOM を更新して候補を表示する処理
        console.log(items);
      });
  }、300); // 300ms デバウンス
});

FAQ(Q:/A: を 2〜3 組)

Q: Ajax と Fetch は同じものですか?
A: 概念的には同じ「非同期通信による部分更新」の手法ですが、Fetch は最近の標準 API、Ajax はその手法全体を指す用語です。
Q: Ajax はセキュリティ上の懸念がありますか?
A: はい。同一オリジンポリシーや CORS、CSRF 対策、入力のバリデーションなどを適切に実装する必要があります。
Q: 地図の高速スクロールは Ajax のみで実現しますか?
A: 部分的データ取得は Ajax で行いますが、滑らかなスクロールにはブラウザのレンダリング最適化やタイルキャッシュ、リクエスト制御も重要です。

関連キーワード: Ajax, 非同期通信、XMLHttpRequest, Fetch API, JSON, CORS, オートコンプリート、地図タイル、デバウンス、DOM, CSS, SAX
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

情報処理安全確保支援士
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について