プロが教える店舗&オフィスのセキュリティ対策術

またお世話になります。
毎回質問させていただいています。

会社にて、現在新たに開発するシステムのプロトタイプを作成しております。
そこで、プロトタイプですが、「ExtJs」というフリーのフレームワークを用いて
利用できる箇所は利用している次第です。

ExtJs
http://extjs.co.jp/products/js/thank-you.php?dl= …

今回、利用する箇所は、一覧画面をgridにしようと考えています。
本日、会社で構築した段階では、一覧に表示するデータを固定で設定した場合
問題なく表示する事ができました。

そこで、外部ファイル(xml or json)に置き換えようと思ったのですが、
取得できません。(gridは表示されますがデータが表示されません。)


そこで、質問です。
Q.Ajaxでxmlファイルを読む場合、サーバを介さないと読み込めない?
ローカル上は無理だとか、どっかのサイトに書いてたので。。。。
そもそもxmlは、サーバ上で読むものなのか。


固定値は都合上、なるべく避けたいです。
社内にAjaxを詳しい人が全く居なかったので、困っています。


恐れ入りますが、ご回答のほうお願いします。



/**-----------------------------------------------------**/
別途質問です。(すみません。。。。ExtJsのgridに関連するものです。)
grid内にリンク<a>~</a>を付与する事はできますか?
/**-----------------------------------------------------**/

A 回答 (3件)

> しかし、プロトタイプで提出する先はまた別ですので、なるべくHTMLだけで動作させたいんですよね^^;



そのプロトタイプが、別の開発のインプットになるのか、プロトタイプとして完結するのか(コンペになっている場合はそうですね)わかりませんが、サーバとの通信部分を実装されるのであれば、動作させるのにサーバを構える必要があるので

- READMEを用意して動作させる手順をまとめて一緒に提出
- ソースとは別にリファレンスサイトを伝える

とか、通信する部分があるのでサーバが必要なのですが、どうしますか?と先方と納品方法について協議して決めたらどうですか?

どうしてもHTMLで完結しなければならないのであれば、ダミーデータのjsファイルを用意して script タグで読んじゃうとか(ExtJS のサンプルサイトではよくやってます)

> >click のイベントを取れるので、それに合わせてjavascript で遷移させる方法もあるかと。
> これは、項目個別にできますか?
> また、下線等のスタイルシートの指定等できますか?

可能か不可能かであれば可能だと思います。
もし、a タグがあったり、なかったり、条件によってかわってくるのであれば、プログラムが煩雑になってくるとおもいます。

僕なら読み込むデータの定義で、シンプルにまとまられないかなと考えるかなぁ
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今回は、プロトタイプで完結でした。
後ほど、それを元にFlexか他のRIAの参考にする流れでした。
やはりWebサーバを介さないとダメなようですね。
大変勉強になりました!
ありがとうございます。

また、遷移に関しても別途renderでの定義を追加したら要望通りの処理ができました。

お礼日時:2011/02/17 22:36

>Q.Ajaxでxmlファイルを読む場合、サーバを介さないと読み込めない?



XMLデータとして読み込むには、MIME-Typeがxmlのものになっている必要があります。

ウェブサーバーを経由しないとMIME-Type(content-typeヘッダ)が付与されませんし、
サーバーの設定などによってはxmlではなくtextのMIME-Typeが付与されることもありますので、
そういう場合にresponseXMLを使用できなくなります。

ですが、一部のブラウザではoverrideMimeType()というメソッドがありますので、
send()の前に
xhr.overrideMimeType('application/xml');
などとしておくと、XMLデータとして扱えるようになります。

ローカルをサーバーにするのが手っ取り早いかもしれませんけどね。
データベースを使わないのであれば、Macならウェブサービスを実行するだけですし、
WindowsならAnHttpdが簡単だと思います。


フレームワークやライブラリを使用する場合は、そのライブラリ独自の動作制限がありますので、
ライブラリ専用のMIME-Typeを上書きするメソッドを呼び出すか、
ライブラリそのものを改変する、
もしくは希望する機能があるライブラリへの乗り換えをすることになると思います。


別途質問の方はわかりません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>XMLデータとして読み込むには、MIME-Typeがxmlのものになっている必要があります。
>ウェブサーバーを経由しないとMIME-Type(content-typeヘッダ)が付与されませんし、
>そういう場合にresponseXMLを使用できなくなります。
そうだったんですね。ファイルを読み込むだけだと思っていたため、サーバとか関係ないと思っていました。
ありがとうございます。

結果ですが、固定値で良いという事だったので固定値にします。
ありがとうございます。

また別途質問に関しても、renderを定義する方法で解決しました。

お礼日時:2011/02/17 22:31

ExtJS いいですよね。

難しいですけど。
サーバーサイドはJSON吐くだけなんで楽なんですが、デバッグが面倒なのがちょっと大変。

間違ってるかもしれませんが、javascript ってローカルのファイルにアクセスできなかったと思います。
それができちゃうと、アクセスしただけでローカルのファイルを読み込んで、どこかに送れちゃうサイトが容易にできちゃうので。
#新しめのブラウザですと File API ってのがあるようですが、ちょっと用途が違うみたいです。
#ファイルのアップロードのようにユーザの操作が必要なので。

で、xmlをサーバに置くとしても、ドメインが異なるサーバですとまた面倒なことに。

手っ取り早く、ローカルにWebサーバを立ててしまうのが楽かと思います。

grid と template を組み合わせても良いですし、画面遷移したいだけであれば、click のイベントを取れるので、それに合わせてjavascript で遷移させる方法もあるかと。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>手っ取り早く、ローカルにWebサーバを立ててしまうのが楽かと思います。
やっぱりそうですか。。。
しかし、プロトタイプで提出する先はまた別ですので、なるべくHTMLだけで動作させたいんですよね^^;

>grid と template を組み合わせても良いですし、
Ext.Templateクラスの事でしょうか?
会社にて調べてみます。

>click のイベントを取れるので、それに合わせてjavascript で遷移させる方法もあるかと。
これは、項目個別にできますか?
また、下線等のスタイルシートの指定等できますか?


また、再度質問になりますが、ご回答願います。

お礼日時:2011/02/17 07:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!