Webプログラミング演習

Similar documents
Webプログラミング演習

Webプログラミング演習

第7回 Javascript入門

メディプロ1 Javaサーブレット補足資料.ppt

NetworkApplication-12

第 8 回の内容 クライアントサイド処理 JavaScript の基礎

PowerPoint プレゼンテーション

コンテンツメディアプログラミング実習2

JC/400でポップアップウィンドウの制御&活用ノウハウ!

WEBシステムのセキュリティ技術

Web データ管理 JavaScript (1) (4 章 ) 2011/12/7( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/21

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

医療者のための情報技術入門第 9 回プログラムがはたらくしくみを学ぶ (2) 日紫喜光良 概要 1. はじめに- 具体例から ここから Javascript のプログラミング入門 次はどうする--

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) 演習名 使用するフォルダ 演習 1 Z: Web データ管理 演習

第7回 Javascript入門

untitled

Webデザイン論

NetworkApplication-11

JavaScript 演習 2 1

PowerPoint プレゼンテーション

SmartBrowser_document_build30_update.pptx

untitled

Microsoft Word - no06.doc


Microsoft PowerPoint _2b-DOM.pptx

Web プログラミング 1 JavaScript (4) (4 章 ) 2013/7/17( 水 ) 日時 講義内容 4/10 ( 水 ) ガイダンス Web (1 章 ) 4/17 ( 水 ) HTML+CSS (1) (2 章 ) 4/24 ( 水 ) HTML+CSS (2) (2 章 ) 5

4. WIX アタッチエンジン 4. 1 FSDR 処理 システムの Web 資源結合動作であるアタッチ処理について 述べる. アタッチ処理は以下の 4 フェーズに分けられる. この一連の 流れを FSDR 処理とする. Find 処理 Select 処理 Decide 処理 Rewrite 処理

内容 ( 演習 1) 脆弱性の原理解説 基礎知識 脆弱性の発見方法 演習 1: 意図しない命令の実行 演習解説 2

知的 Web のためのマッシュアッププログラミング presentation data logic JavaScript JavaScript JavaScript 図 -1 マッシュアップの分類 マッシュアップの分類 3-1 presentation, data logic 3 presentat

PowerPoint プレゼンテーション

目次 1. PDF 変換サービスの設定について )Internet Explorer をご利用の場合 )Microsoft Edge をご利用の場合 )Google Chrome をご利用の場合 )Mozilla Firefox をご利

改訂履歴 項番版数作成日 / 改訂日変更箇所変更内容. 平成 28 年 5 月 3 日新規章構成の変更, 分冊化に伴い新規作成 (i)

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Web のしくみと応用 ('15) 回テーマ 1 身近なWeb 2 Webの基礎 3 ハイパーメディアとHTML 4 HTMLとCSS 5 HTTP (1) 6 HTTP (2) 7 動的なWebサイト 8 クライアントサイドの技術 回 テーマ 9 リレーショナルデータベース 10 SQL とデータ

第5回 マインクラフト・プログラミング入門

intra-mart Accel Platform — 招待機能プログラミングガイド   初版  

JavaScript カスタマイズ入門 kintone university アプリデザイナープラス JavaScript カスタマイズ入門編演習問題回答 演習問題 第 2 章サンプルで試そう 1 cybozu.com developer network の サンプルで試そう ( 以下 サンプル と

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

第 7 回の内容 動的な Web サイト フォーム Web システムの構成

情報システム設計論II ユーザインタフェース(1)

Webデザイン論

わんくま同盟 大阪勉強会 #1

AJAXを使用した高い対話性を誇るポートレットの構築

ページ閲覧を計測する 手順 1: カスタム HTML タグ からタグを設定する まず タグタイプを選択 の画面で カスタム HTML を選択します タグの設定画面が開くので ユーザグラムで発行されたタグを HTML 欄に直接貼り付けてください document.write をサポートする はオフのま

PowerPoint プレゼンテーション

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

Microsoft Word 基_シラバス.doc

Calendar Plus JavaScript API リファレンス ラジカルブリッジ Ver

フォームとインナー HTML を使って動的にページ内の文章を変更しよう 問題 1. つぎの指示と画面を参考に HTML を組みなさい 仕様 テキストボックスに任意の文字を入力し [ コメント ] ボタンをクリックすると 下部の文章がテキストボックスの内容に置き換わる フォーム名 : f1 テキストボ

PowerPoint プレゼンテーション

4. Webブラウザのオブジェクト

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

プレポスト【問題】

Microsoft Word - PaLearn_manual_05c.doc

PowerPoint プレゼンテーション

クイックマニュアル(利用者編)

携帯電話でGoogle Mapsを使う

JavaScriptプログラミング入門 2.JavaScriptの概要

SmallTown 日付オブジェクト 日付オブジェクトを使ってページ内にいろいろな仕掛けをつくってみよう 1. 日付オブジェクトとは JavaScriptではいろいろなオブジェクトを扱えますが 日付オブジェクトもその一つです 手順としては 1 日付オブジェクトを作成する2そのオブジェクトから日にちや

9 WEB監視

SVG資料第10回目(その2) Ajaxによる同期通信と非同期通信の違い

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

PowerPoint プレゼンテーション

SeciossLink クイックスタートガイド

位置参照情報 API 仕様 ( 試行版 ) 位置参照情報 API 仕様 ( 試行版 ) Ver 1.0b 平成 26 年 12 月 国土交通省国土政策局国土情報課

勉強会の流れ Google API の概要 デモ curl で実際に体験 Copyright 2010 SRA OSS, Inc. Japan All rights reserved. 2

GEC-Java

JavaScript演習

情報システム設計論II ユーザインタフェース(1)

NetworkApplication-09

<4D F736F F F696E74202D208A778F708FEE95F197AC92CA82F08EC08CBB82B782E98B5A8F E97708B5A8F70816A5F94D196EC8D758E742E >

Web WIX WIX WIX Web Web Web WIX WIX WIX Web 3. Web Index 3. 1 Web Index (WIX), Web. Web, WIX, Web ( WIX ), URL WIX 1 entry wid eid keyword targe

Simple Violet

Si 知識情報処理

E4X in Firefox nanto_vi (TOYAMA Nao)

目次 1. 概要 2. サーバーへの設置 3. 設定 4. ユーザーアクセス記録の収集 5. 利用規定 6. 更新履歴

intra-mart Accel Platform

JavaScriptで プログラミング

ページ閲覧を計測する 手順 1: カスタム HTML タグ からタグを設定する まず タグタイプを選択 の画面で カスタム HTML を選択します タグの設定画面が開くので ウェブアンテナで発行されたタグを HTML 欄に直接貼り付けてください このとき document.write をサポートする

SOC Report

目次 1. 研究の背景と目的 1.1. 背景 1.2. 目的 2. 研究計画 3. 現状報告 3.1. 制作中の Web アプリケーション 使用する技術 概要 機能 課題 参考にしたサイト 書籍 3.2. その他の取り組み 4.

指定立替納付を使った場合の 国内提出書類の提出方法 1 出願書類や 納付書などを 指定立替納付で支払う場合の手順をご案内します ここでは ひな型を Word で編集する場合の手順を案内します 他を利用する場合は ユーザガイドをご覧ください (1) 指定立替納付を使うための事前準備 a. クレジットカ

ÉvÉçPM_02

第7回 Javascript入門

JavaScript 1.! DOM Ajax Shelley Powers,, JavaScript David Flanagan, JavaScript 2

Microsoft Word MT操作マニュアル(ユーザ編).doc

目次 1. ログイン P2 2. 送受信管理 P メールの新規送信 P 未送信 ( 保存 ) メールの編集 削除 P 送信済みメールの状況確認 P6 3. メンバー ( 送信先 ) 管理 P メンバーの新規登録 編集 P メンバーの削除 P

XMLとXSLT

目次 はじめに 1サーバ作成 2 初期設定 3 利用スタート 付録 Page.2

Web データ管理 JavaScript (3) (4 章 ) 2011/12/21( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/18

目次 0. 計測タグ設置の基本 4 このマニュアルについて... 5 計測タグ設置の流れ... 6 必ず確認していただきたいこと 計測タグの種類 8 共通タグ イベントタグ コンバージョンタグ 計測タグの設置方法 16 計測タグを設置する際の

JavaScript プログラミング 4.Web ブラウザのオブジェクト 4-4 window オブジェクト 4-5 location オブジェクトと history オブジェクト 4-6 link オブジェクト 08T4082A 野太樹

スライド タイトルなし

Microsoft PowerPoint _3a-SEO.pptx

Ajax-ch00

2 目次 1 はじめに 2 システム 3 ユーザインタフェース 4 評価 5 まとめと課題 参考文献

FW ファイルアップロード ダウンロード機能利用ガイド Version 年 9 月 21 日富士通株式会社 i All Right Reserved, Copyright FUJITSU LIMITED

2. 動的コンテンツとは動的コンテンツとは Web ブラウザからの要求に応じて動的に Web ページや画像などを生成する Web コンテンツのことをいいます Web で利用するサーチエンジンやアクセスカウンタ等は この仕組みを用いています 動的コンテンツは大きく次の二つに分類されます (1) Web

目次. WEB メールへのログイン.... メール送信手順.... メール受信手順.... アドレス帳の操作手順.... フォルダーの操作手順 メール発信者登録 署名登録手順 基本的な設定 参考情報... 8

Taro-02_Web_html自習テキストⅡ.

Transcription:

Web プログラミング演習 STEP9 Ajax を利用した RSS フィードのタイムライン表示

Ajax Asynchronous JavaScript + XML クライアントサイド ( ブラウザ内 ) で非同期サーバ通信と動的ページ生成を組み合わせる技術の総称 ウェブアプリケーションの操作性向上 ( ページ遷移を伴わない ) サーバとの小刻みな通信 = 必要なデータを必要な時に要求 ( リクエスト ) 非同期通信 = サーバの応答 ( レスポンス ) を待つ間も処理を実行可能

同期通信と非同期通信 (1) ブラウザ http サーバ ブラウザ http サーバ リクエスト リクエスト 応答待ち レスポンス 割り込み レスポンス レスポンス処理は割り込み ( コールバック関数 ) を利用 同期通信 非同期通信

同期通信と非同期通信 (2) ブラウザ http サーバ ブラウザ http サーバ リクエスト 1 リクエスト 1 レスポンス1 リクエスト2 レスポンス2 リクエスト 2 レスポンス 2 レスポンス 1 リクエストの順序とレスポンスの順序が一致しないことがある 同期通信 非同期通信

マッシュアップと Ajax マッシュアップ (mashup) 複数のウェブサービスを組み合わせて, ひとつの複合サービスを実現すること ( 音楽用語から派生 ) 複数の異なる音源を組み合わせて一つの曲に仕上げる 組み合わせを前提としたウェブサービス API の提供 Google Maps, Amazon 商品検索, 楽天トラベル API,. 他多数 クライアントサイドマッシュアップ ブラウザから JavaScript や iframe を使って API を利用 比較的時間のかかるサービスを利用する場合は,( 応答待ちをしない )Ajax が適切 サーバサイドマッシュアップ

XMLHttpRequest 非同期 Http 通信を実現する機能を提供する,JavaScript 組込みクラス 主要メソッド open(http メソッド, URL, 非同期フラグ, 名前, パスワード ) サーバとの通信方式を設定 HTTP メソッド : GET, POST など URL:HTTP アクセスする先注 : 表示ページと同一サーバ上の URL にしかアクセスできない 非同期フラグ :true なら非同期通信を行う ( 省略時は true) 名前, パスワード : ユーザ認証が必要な場合に指定 ( 省略可 ) send( 送信データ ) サーバへのリクエスト送信 送信データ :POST する場合に送るデータ ( 不要の時は )

XMLHttpRequest( つづき ) 主要プロパティ onreadystatechange 通信状態 (readystate) の変化時に呼び出される関数 readystate 通信状態 responsexml 0 (uninitialized: 読み込み開始前の初期状態 ), 1 (loading: 読み込み中 ),2 (loaded: 読み込んだ ), 3 (interactive: 読み込んだデータを解析中 ) 4 (complete: 読み込んだデータの解析完了 ) レスポンスを XML DOM 形式で取得

典型的な Ajax プログラミング // リクエストの送信 function ajaxrequest(url){ var req = new XMLHttpRequest(); req.open('get', url, true); req.onreadystatechange = function(){ if(req.readystate==4){ onresponse(req); req.send(''); // コールバック関数 function onresponse(req){ var myxml = req.responsexml;... レスポンス XML の処理... XMLHttpRequest オブジェクトの生成通信方式の設定イベント処理関数の設定通信状態が 4( 解析完了 ) になったらコールバック関数を呼び出す リクエスト送信 XML DOM 形式で取得

Ajax で RSS フィードを処理する RSS フィード サイトで公開されている情報の要約を XML 書式で記述したもの この演習では RDF Site Summary(RSS0.9, RSS1.0) を利用 Ajax でフィード処理 興味のあるサイトの RSS フィードをリクエスト コールバック関数でフィードの中身を調べて, 表示用 HTML タグを生成してページに埋め込む

演習 % cd myblog 次ページに示す JavaScript を記述したファイルを作成 ファイル名は feed.js タイムライン表示用の HTML ファイルを作成し, JavaScript を利用 ファイル名は timeline.html クライアントサイドマッシュアップなのでページ記述は静的

feed.js //RSS フィードの読込指示 function insertfeed(){ ajaxrequest('/~manda/webprg/rss.php'); // リクエストの送信 function ajaxrequest(url){ var req = requestobj(); リクエストする rss フィードの URL を引数として ajaxrequest 関数を呼び出す req.open('get', url, true); req.onreadystatechange = function(){ if(req.readystate==4){ onresponse(req); req.send(''); // 通信オブジェクトの生成 function requestobj(){ return new XMLHttpRequest(); ( 次ページへつづく )

feed.js( つづき ) // コールバック関数 function onresponse(req){ var rss = req.responsexml; if(rss){ var channel = rss.getelementsbytagname('channel')[0]; var title = channel.getelementsbytagname('title')[0].firstchild.nodevalue; サイトタイトル var link = channel.getattribute('rdf:about'); サイトURL var items = rss.getelementsbytagname('item'); for(var i = 0; i < items.length; i++){ エントリごとの繰り返しエントリタイトル var ititle = items[i].getelementsbytagname('title')[0].firstchild.nodevalue; エントリ日付 var idate = items[i].getelementsbytagname('date')[0].firstchild.nodevalue; エントリ本文 var ibody = items[i].getelementsbytagname('description')[0].firstchild.nodevalue; エントリURL var ilink = items[i].getattribute('rdf:about'); showtimeline(title, link, ititle, idate, ibody, ilink); エントリをタイムラインに挿入 ( 次ページへつづく )

feed.js( つづき ) // タイムラインへの挿入 function showtimeline(title, link, ititle, idate, ibody, ilink){ var entry = document.createelement('div'); entry.setattribute('class', 'entry'); entry.innerhtml = ' <h3 class="date">'+idate+'</h3> <h4><a href="'+link+'">'+title+'</a><br/> <a href="'+ilink+'">'+ititle+'</a></h4> <div class="body">'+ibody+'</div> '; var tline = document.getelementbyid('timeline'); <div class= entry > 要素を作成 エントリごとの HTML 記述 ( 各自の仕様にあわせる ) ヒアドキュメント風の書き方だが実際は単なる文字列の代入 (JavaScript にヒアドキュメントは無い. 行末の は次行への継続を意味する ) タイムライン (id= timeline の要素 ) を取得 var entries = tline.getelementsbyclassname('entry'); タイムラインに挿入済みのエントリ for(var i = 0; i < entries.length; i++){ (class= entry の要素 ) に対する繰り返し var edate = entries[i].getelementsbyclassname('date')[0].firstchild.nodevalue; if(edate < idate) break; 日時 (class= date の要素の内容 ) を取得 挿入するエントリよりも旧ければ繰り返しを抜ける if(i < entries.length){ tline.insertbefore(entry, entries[i]); 途中で抜けた場所に挿入 else{ tline.appendchild(entry); 末尾に追加 ( ソースプログラム )

コールバック関数 (onresponse) の処理内容 各エントリーの HTML 記述を作成し,"timeline" という id 属性を持つ HTML 要素の中に日時順に挿入する <div class="entry"> <h3> 日時 </h3> <h4> <a href=" サイト URL"> サイトタイトル </a><br/> <a href=" 個別エントリ URL"> 個別エントリタイトル </a> </h4> <div class="body"> 本文 </div> </div> 挿入 <div id="timeline"> </div>

timeline.html の作成 head 領域内で feed.js を読み込む <head>... <script type="text/javascript" src="feed.js">//</script>... </head> body タグの onload 属性で insertfeed 関数を実行 <body onload="insertfeed()"> body 領域内にタイムライン表示用の HTML 要素を置く... <div id="timeline/>...

タイムライン表示の確認 timeline.html にアクセスして, ウェブプログラミング演習サイトのエントリが表示されれば OK 他サイトのフィードを追加 insertfeed 関数の中で,ajaxRequest 関数を複数個呼び出す 引数は自分や友達のブログの RSS フィードの URL /~ ユーザ ID/myblog/rss.php リクエスト順序と表示順序が異なるときがある (= 非同期通信 )

次回の予定 JavaScript を利用した入力チェック