Webサイト設計でのデータ記録方法について

このQ&Aのポイント
  • Webサイト上で画像の表示順番を記録し、管理画面で変更可能にする方法について質問です。
  • WindowsプログラミングではテキストファイルやIniファイルを利用して情報を記録しますが、Webシステムでの実現方法を知りたいです。
  • データベースを使用せずに、Webサーバー上のテキストファイルを読み書きする処理をJavaScriptで行う方法を教えてください。
回答を見る
  • ベストアンサー

Webサイト設計 データの記録

Webサイト上で以下のことを実現したいです。 Gallaryページに表示にする画像の順番をどこかに記録、ページを開く度に、その順番に従って、画像を表示。管理画面で画像の順番を変更可能にする。 JavaScriptを使って、実装中。 Webシステムの製作は素人。Windowsプログラミングは経験者。 Windowsプログラミングでは、上記のような仕様を実現するために、テキストファイルやIniファイルを用意して、そこに情報を記録、ページを読み込む際にそのテキストから情報を取得し、画像を表示の順番を決定するのですが、Webシステムでは、どのようにこの仕様を実現するのでしょうか? 記録するデータは少しですので、データベースは利用しません。 Webサーバーにテキストファイルを置いて、そのファイルに記録するのでしょうか? その場合、JavaScriptからそのテキストを読み込み、書き込みする処理があると思い、ネット上でコード内容を調べているのですが、見つかりません。要求を満たすサイトを知ってられましたら、ご教授お願い致します。

  • tosi_u
  • お礼率77% (514/662)

質問者が選んだベストアンサー

  • ベストアンサー
  • neko-ten
  • ベストアンサー率55% (1287/2335)
回答No.3

>Webサーバーにテキストファイルを置いて、そのファイルに記録するのでしょうか? 基本的にはそうなります。 ただ、WindowsAppsと違うのはクライアントからサーバのファイルに対し、基本的に直接アクセスはできないということです。 一般的なHTTPアクセスでも、ファイルにアクセスするのはWebサーバアプリケーションであってクライアントではありません。 まぁ、閲覧に限ってしまえば、Webサーバがアクセスできるファイルであれば大きな問題にはなりません。 今回の場合であれば、JavaScriptでhttpRequestを行い、該当テキストファイルをリクエストします。 一般的にはそのままテキストファイルの中身を応答してきますから、それをJavaScriptで成形・表示してやればいいわけです。 #2さんのおっしゃるように、jQueryなどのフレームワークで十分可能です。 対して、管理画面からの編集ではこれだけでは済みません。 クライアントから直接ファイルにアクセスできないということは、ファイルの編集ができないということです。 編集するには、サーバサイドで稼働するスクリプトが必要になります。 一般的にはPHPなり、Perlなりがサーバ側に実装されていますので、それを使ってスクリプトを書くことになります。 実際の実装に関しては、設計次第です。Ajaxで作ることも可能ですし。 今回の場合、テキストベースであることは全く問題がありません。 >その場合、JavaScriptからそのテキストを読み込み、書き込みする処理があると思い、 >ネット上でコード内容を調べているのですが、見つかりません。要求を満たすサイトを知ってられましたら、ご教授お願い致します。 JavaScriptでは書き込みができませんから、サンプルコードはどうしても存在しません。 jQueryなどのフレームワークを使い、Ajaxを組んでいくことになります。 jQuery:http://jquery.com/ prototype.js:http://www.prototypejs.org/ どちらもJavaScriptフレームワークで、Ajaxフレームワークも持ちます。 サーバサイドであれば、掲示板スクリプトなどが書き込みのサンプルになるのではないかと思います。 実際にどういった言語を使うかで要件が変わってきますから、その部分をまず決めておくのがいいかと思います。

tosi_u
質問者

お礼

そうなんですね。ここで回答いただいた内容などは、なかなかネット上では記載されておらず大変貴重です。 設計の仕方の大枠もわかりましたし、教えていただいたことを元に、jQuery、Ajaxなどのキーワードを調べていけば、解決に繋がることがわかったからです。もしそれを教えていただけなければ、そういったキーワードにもたどりつけなかったです。 この内容は同じ問題を抱えている他の方にも大変役に立つ情報だと思います。ありがとうございました。

その他の回答 (3)

  • Chaire
  • ベストアンサー率60% (79/130)
回答No.4

その場合、JavaScript が無効の場合に何も生じない残念なページになりますが、よろしいのでしょうか。 HTML というのは、ページデザイン言語ではありません。第一義的に構造化データですよ。例えば、「画像の順番」は ol/li のリストとして表すことができます。ブラウザは、このデータを箇条書きとして表示するでしょう。 JavaScript で何かしらのギミックが必要なら、このリストデータを使うことができます。つまり、HTML に存在するデータを利用すれば、JavaScript が無効でも特に問題ありません。 最近のブラウザなら、HTML Editing API や Drag&Drop API を使うことで、その場でリストを入れ替えることができます。入れ替えたデータをサーバ側に送信し、元ファイルを更新します。 繰り返しますが、HTML は第一義的に構造化データです。これを利用しない手はありません。 --- 分かりづらいのは、HTML が構造化データであると同時に、事実上はブラウザ表示用データも兼ねている、ということです。両者を切り離すための仕組みが XHTML でしたが、残念ながら広まりませんでした。 とにかく、「設定ファイル」そのものを HTML としてマークアップし、JavaScript から利用してみる、という観点で考えてみて下さい。少なくとも、ウェブアプリでもないウェブページであれば、JavaScript が無効になるだけで読めないというのは設計として論外ということになってしまいます。 --- なお、どうしても HTML としてマークアップできない、もしくはその必要がない(なくても閲覧に支障のないギミックである)ということなら script 要素内に入れるということもできます。 <script type="text/csv"> "file1.png", "file2.png" </script> これを外部ファイル化したければ XMLHttpRequest を使っても構いません。

tosi_u
質問者

お礼

ご回答、ありがとうございます。なにぶんWebプログラミング素人ですので、説明していただいた内容で、分からない言葉などがあり、一つ一つ勉強が必要です。ただ、Javascriptを使わずとも、HTMLだけで、要求を満たすことができるのでは?ということがわかりました。HTMLだけでできるなら、不必要に他の技術を使う必要はありません。 教えていただいたことを理解するために、少しキーワードの勉強をさせてください。そして、HTMLだけで私の要求を満たす処理を書けるかやってみます。 問題解決の道筋ができました。 ありがとうございました。

  • aoyama984
  • ベストアンサー率45% (253/561)
回答No.2
tosi_u
質問者

お礼

親切にご回答ありがとうございました。これから詳しく見ていきますが、役立ちそうな情報です。 ありがとうございます。助かります。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

残念なことに、 > 記録するデータは少し でもデータベースを使用するのが現実的です。なぜなら、ブラウザが覚えていられるデータ量が非常に少なく、しかも、ページ遷移ごとにそのデータをサーバーに送信する必要があるためです。 ブラウザでデータを記憶するにはCookieを使用します。JavaScriptによるCookieの設定・読み取りは以下のURLの通りです。 http://homepage3.nifty.com/aya_js/js2/js226.htm ……が、このCookieは記憶できる容量が4kバイトしかなく、その中に必ず有効期限を記述しなくてはなりません。しかも、Cookieの内容はページ遷移ごとにサーバーに送られ、その分サーバーとの通信量が増えてしまいます。 したがって、Cookieに保管するデータとしてはセッションID程度にしておくべきでしょう。 また、hiddenフォームに必要なデータを記録しておくという方法もありますが、こちらは容量制限は無いもののページ遷移ごとにそのデータをサーバーとやりとりする必要があるという点ではCookieと変わりません。 そもそも、不特定多数がアクセスするWebプログラムである人がどう並べたかをどう識別するのでしょうか?それを考えると、サーバー側で保持するデータは並び順だけでは不十分で、アクセスしてきた人と並び順のペアが必要になります。しかも、そのデータの整合性などを考えるとデータベースを使用してデータを記憶するのが現実的になります。 ……というのは少し前までの話で、ひょっとしたらあなたの案件はWeb Storageを使えば実現できるかもしれません。ただし、対応ブラウザとしてIE7以前がある場合は上で書いた手段を使わなくてはならないでしょう。 Web Strage 解説 http://www.htmq.com/webstorage/ ブラウザの対応状況 http://caniuse.com/#feat=namevalue-storage

tosi_u
質問者

お礼

詳しいご説明ありがとうございます。私の説明が紛らわしかったので、1点認識違いをされている部分があるかと存じます。 「Gallaryページに表示にする画像の順番」ですが、これはWeb管理者用の裏画面である「Gallery画像編集ページ」でのみ更新可能です。なので、Webを閲覧しているクライアントは設定変更できません。Web管理者のみ閲覧・編集です。Webサーバー内にデータを保存できれば仕様を満たせます。 素人なので認識に誤りがあるかもしれません。誤りがあれば、ご指摘お願いします。 Cookieは、Webクライアント毎のPCに記録されるデータなので、今回の仕様ではデータ記録場所としては最適でないと思われます。 hiddenフォームの場合もユーザのブラウザ毎にデータが記録されるので、ブラウザを閉じると、データが抹消され、最適でないです。 すると、やはりMySQLなどデータベースをWebサーバーに導入するしかないのでしょうか? Windowsプログラムだと、データ保存は、データベースも使いますが、ちょっとしたデータはIniファイルなどテキスト形式のファイルから読み書きを行い、その方がコーディングも、環境設定も簡単なのですが。

tosi_u
質問者

補足

詳しいご説明ありがとうございます。私の説明が紛らわしかったので、1点認識違いをされている部分があるかと存じます。 「Gallaryページに表示にする画像の順番」ですが、これはWeb管理者用の裏画面である「Gallery画像編集ページ」でのみ更新可能です。なので、Webを閲覧しているクライアントは設定変更できません。Web管理者のみ閲覧・編集です。Webサーバー内にデータを保存できれば仕様を満たせます。 素人なので認識に誤りがあるかもしれません。誤りがあれば、ご指摘お願いします。 Cookieは、Webクライアント毎のPCに記録されるデータなので、今回の仕様ではデータ記録場所としては最適でないと思われます。 hiddenフォームの場合もユーザのブラウザ毎にデータが記録されるので、ブラウザを閉じると、データが抹消され、最適でないです。 すると、やはりMySQLなどデータベースをWebサーバーに導入するしかないのでしょうか? Windowsプログラムだと、データ保存は、データベースも使いますが、ちょっとしたデータはIniファイルなどテキスト形式のファイルから読み書きを行い、その方がコーディングも、環境設定も簡単なのですが。

関連するQ&A

  • textデータをWebページに読込むJavaScript

    GoogleAdsenceでは、JavaScriptを組み込んだWebページから、別のファイルのデータを読込んで表示する仕組みになっていますが、これはどうしたら出来るのでしょう。 別にGoogleみたいにWebページを解析してデータを表示したいとか大それたことじゃなくて、自社のホームページに、最新情報をTEXTで1~2行表示しているのですが、しょっちゅうそれが変わります。そしてその文章を作る人がHTMLがわからないので、変更する時に私がWebページをいちいち更新しています。 できればその人がCGIフォームで最新情報を入力すれば、WebサーバーにData.txtみたいなファイルに内容が保存されて、それを表示するWebページの一部にJavaScriptでData.txtの内容を読込んで表示する、という感じにしたいのですが・・・私のいわんとすることわかりますでしょうか

  • 入力したテキストボックスのデータを別Webページに渡したい

    テキストボックスを持つ2つのWebページ(A.html,B.htmlとします)があります。 A.html内にB.htmlを開くJavaScript (window.open("B.html");)を記述しています。 このスクリプトを実行したらB.htmlを新しいウィンドウで開きますが、 このBページ内のテキストボックスに文字データを入力して、 OKを押したら、A.htmlのテキストボックスにデータを表示させたいのです。 こういうことはJavaScriptだけでできないのですか? cgi+JavaScriptを使わないとできないのでしょうか? フレーム間の場合はできそうですが、ウィンドウ間と言うのは出きるのか 不明です。 ご存知の方、よろしくお願いします。

  • <FORM><BUTTON>タグを利用して表示されているwebページの内容をローカルに画像として保存したい

    実現方法がさっぱり検討もつかないので 質問させていただきます。 何かしら画像と 「保存」名前のついたボタンを表示するwebページを作成したとします。 そのとき表示されているwebページの内容全体を 「保存」ボタンを押すことによって ローカルのファイルとして保存する方法は何かないでしょうか? 尚、画像のファイル形式に特にこだわりはありません。 JavaScriptやCGI,JAVAApplet、もしくはそれらを組み合わせた方法、 実現方法は何でもかまいません。  とても困っています。 「そんなこと絶対無理。」という回答でもいいです。 私の頭の中ではできるかどうかも分からないのです。 どなたか回答よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • テキストファイルやcsvファイルで読み込んだデータを使ってjavascriptで処理する方法

    javascript初心者です。 いろいろと調べたのですが、イマイチよく分からないので質問させてください。 テキストファイルやcsvファイルを読み込んで、 javascriptで判定処理をしたいと思います。 例えば、 A地区,1 B地区,0 C地区,4 ・・・ といったデータを読み込んで、 javascriptで「0なら○地区には画像Aを表示、 それ以外なら○地区には画像Bを表示する」 という形で処理したいです。 でも、 ・どうやってファイルを読み込むのか ・読み込んだデータをどのようにして配列へ入れるのか がよく分からないです。 これらのページ 「http://q.hatena.ne.jp/1195740627」 「http://www.openspc2.org/JavaScript/Ajax/Ajax_study/chapter03/002/index.html」 のような方法を参考にすれば実現可能なのでしょうか。

  • 「WEBページダイアログ」の表示

    機器のある箇所をクリックした際に、「WEBページダイアログ」という小さいウィンドウが開いて、その部分の説明を表示し、また、この小さいウィンドウの場所を画面下の中央よりに指定したいのですが、これはJavascriptで実現可能ですか?不可能ならば、どのような方法がありますでしょうか。

  • WEBでデータベース

    今はaccessでフォームを使ってデータの検索システムを作って使ってますが(一人で) これをWEB上で行う場合、どのようなプログラミング知識が必要なのでしょうか? 教えてgooの様に、テキストに検索文字を入力して 検索ボタンを押下して、検索結果を次のページに表示させたいです。 データベースだけはmdbファイルにありますがWEBの知識がなにもありません。 検索するパソコンは、データを持ってるパソコンとは何もネットワークでは繋がってません。

  • Webページ表示サイズ

    新規でWebページを表示する際(サブウィンドウの表示ではありません)ウィンドウのサイズを固定し、ツールバーを表示しないように指定したいのですが、html内で記述したらよいでしょうか? それともJavaScriptの制御で行ったらいいのでしょうか?その際どのようなコードで実現可能でしょうか?アドバイスをお願い致します。

  • Webページの保存ができません。

    パソコンのハードを交換しOS(もともと付属のCD)をインストールして使い始めました。 概ね、問題なく使えていたのですが、インターネット使用中、通常Webページ保存の為に出る 『ファイル →名前を付けて保存→「Webページの保存」画面が表示 →ファイルの種類が以下の4項目 ・Webページ、完全(*.htm、*.html) ・Webアーカイブ、単一のファイル(*.mht) ・Web ページ、HTML のみ (*.html; *.html) ・テキスト ファイル (*.txt)』が 、 『ファイル →名前を付けて保存→「HTML ドキュメントの保存」画面が表示→ファイルの種類が2項目、 ・HTML(*.htm、*.html) ・テキスト(*.txt)』となっています。 解決方法はないでしょうか。どうぞ、よろしくご教授お願いします。 現在のシステムはWindows XP Service Pack 3 Internet Explorer 7(元は6だったので7にすれば変わるかと思いましたが、変わりませんでした。)

  • webサイトデータをFFFTPでサーバーに入れる際

    webサイトのデータを自作し、FFFTPでインターネット経由でサーバーに入れたところ、トップページの画像が一部しか表示されなかったり、別のページに移動できなかったりします。サイトを管理する際、ページごとに、まずそのページ名でフォルダをつくり、その中にページのhtmlデータと、画像フォルダ (中にデータ)、cssフォルダ(中にデータ)、javascriptフォルダ(これも中にデータ)という構成で作成しました。サーバーに入れる前までは表示にも移動にも問題なかったのですが。。。前任者が行った前のデータを見てみると、フォルダが一切なく、ファイルデータだけがある状況だったのですが、そうしないといけないのでしょうか?フォルダをつかって整理してサーバーに入れる方法で一般的な方法はどんなものなのでしょうか???

  • VBScriptに詳しいサイト

    WEB向けではなくWindowsのツールとしてVBScriptでプログラミング(例えばシステムダイアログの操作など)したいのですが、なかなか良いページが見つからなくて困っています(検索で引っかかるのは大抵WEB Tipsとしてのプログラミングです)。 どこか良いサイトをご存じないでしょうか。