複数リクエストの扱いについて
- 複数リクエストの扱いについて気になる点があります。
- UpdatePanelとWebメソッドの更新のトリガーはJavaScriptで実装しています。
- .NETではリクエストがパラレルで処理されず、1つずつ処理される仕組みです。
- ベストアンサー
複数リクエストの扱い
.NET(C#)でAjaxを使用したWebアプリケーションを実装しているなかで 気になった点があります。 今UpdatePanelを使用した更新が1つと Webメソッド(Pageメソッド)を使用した更新が2つ存在する ページを作っています。 UpdatePanelの更新とWebメソッドの更新のトリガーは JavaScriptを使用して実装しています。 各処理は非同期で実装しているつもりですが、 ログをみるとパラレルに処理が動いていません。 HTTPヘッダを見ると3リクエストが同時に上がっているのですが サーバー側のログを見ると1リクエスト毎に 処理が行なわれています。 そこで質問なのです。 .NETの動きをあまり把握できていないのですが .NETではこういうふうにパラレルで処理は走らない (リクエストがスタックされて処理される?) ものなのでしょうか? .NET初心者なのであまり.NETの動きを知らないので ご存知の方がおりましたら教えてください。
- veracity
- お礼率71% (25/35)
- Microsoft ASP
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ASP.NETの仕様で、同じセッションのリクエストは、同時に処理しないと思います。 ↓で知りました。
関連するQ&A
- Ajax.Requestについて
いつもお世話になっております。 今回はAJAXについてお聞きしたいです。 現在prototype.jsを使って同期通信をしようとしています。 リクエスト部分のソースは以下のようです。 function AjaxLoad() { new Ajax.Request('abc.cgi', { method : 'post', asynchronous : false, } ) response = transport.responseText; hyouzi(response); } abc.cgiというものは処理をして値を返すcgiです。 同期通信したのちにその返された値をhyouzi();で使いたいです。 ここでこのAjaxLoad()を呼び出すとtransportはありませんというようなerrorが出ます。 それ以前にabc.cgiを呼んでいるような感じがしません。 上記のような処理をしたい場合はどのように記述すればよいのでしょうか? ご教授願います。
- ベストアンサー
- JavaScript
- Ajax非同期通信の多重リクエストによる通信障害?
Ajaxの通信において、成功するケース、失敗するケースが 不明な原因によって頻発しています。 サーバー環境は Apache(1.3.27)、PHP(4.2.3 )、 PEARのHTML_AJAXを使用しております。 apache2系では出ていない症状なので、 マルチスレッド/マルチプロセスの処理の違いが あらわれているのかとも思いますが・・・ 多重リクエストの問題だとしたら、どのように対処したら よいでしょうか? 調査したところ「xmlhttp.abort()メソッドでリクエストのキャンセルを行う。」といった記述もありましたが、今使用しているライブラリとは別もののようなので、どう対処すべきが分からず困っています。
- 締切済み
- AJAX
- ブラウザのHTTPリクエストを参照したい
画面遷移時にブラウザ側でHTTPリクエストがどのように発行されているかを参照する手段を探しています。 Webサーバー側でHTTPリクエストの内容をログに出力する方法はわかっているのですがサーバー操作は不可なのでクライアント側で参照する方法を探しています。 ツール、設定なんでもいいのでアイデアがあれば教えていただけないでしょうか。 よろしくお願い致します。
- ベストアンサー
- ネットワーク
- HTTPハンドラでPOSTした値を受け取りたい。
C♯でASP.NET環境にて開発をしています。 htmlにボタン(submit)を置いて、postが来たら、ashx(HTTPハンドラ) のほうでリクエスト値を見てDBから値を取り、結果を返したいと思っています。 結果については、JavaScriptのほうでinnerHTMLを使って反映させる予定です。 オンロードでJavaScriptのメソッドを呼んでるんですが (body onload = "test();") (input type hiddenでいくつかの値がpostされるように なっています) function test() { var ret = new Ajax.Request('GetValue.ashx'),{ method:'post' … } こんな感じでashxを呼んでるものの、htmlでpostした値が 受け取れません。 context.Request.Querystringで取ろうとしてるんですが… htmlでリクエストした際に、JavaScriptを呼んで、そこでajaxリクエストをしている という作りがまずいのでしょうか? HTTPハンドラを使うのが始めてなので、頓珍漢なことをしているかも しれませんが、ご教授いただけると助かります。 宜しくお願いします。
- ベストアンサー
- Microsoft ASP
- AjaxとPHPの連携について
AjaxからPHPにHTTPリクエストし、PHP側でXMLの処理をさせてAjaxにXMLのデータを返す処理ができません。 PHP側でXMLをAjaxに返す時、どのようなコードで書けばよろしいですか?
- 締切済み
- AJAX
- ■ リダイレクトされるHTTPリクエストのログを見たい ■
既存Webサイトの改修を行っています。 はじめから参加していたわけでないので、 現状がどういった仕様なのか調べるとこから始めています。 HTTPリクエストが、何回かリダイレクトされる箇所があるのですが、 どこへリダイレクトされるか調べたいと思っています。 クライアント側には、リダイレクトされたログが残っていないのでしょうか? 残っているなら、その調べ方を教えていただきたいのですが。 よろしくお願いします。
- 締切済み
- ネットワーク
- JSFで最初のリクエストで動く処理を実装するには?
近日、JSF(ver 1.2)でWebシステムを実装することになりJSFの勉強中のものです。 ASP.NET や PHP(Smarty) でWebシステム実装経験があります。 JSFでどう実装すれば良いのかわからないことがあり、詳しい方にお教え頂きたいと考えています・・・! 【質問概要】 JSFで最初のリクエスト時のみに動く処理はどのように実装すればよいのでしょうか? ASP.NETでは Page_Load イベントで Page#IsPostBack を以下の例のように使用すると 最初のリクエスト時のみに動く処理を実装することができました。 ---- 例 ここから ------------------------------------------- void Page_Load() { // 毎リクエスト時に行う処理 if (!IsPostBack) { // 最初のリクエスト時にのみ行う処理 } } ---- 例 ここまで ------------------------------------------- JSFではこれに相当するものが無いでしょうか? 【試してみたこと】 管理Beanのコンストラクタで最初のリクエスト時にのみ行う処理ができるかと思い、 以下のtest.jspを実行し、コンソールにどのように表示されるか試してみました。 ---- test.jsp ここから ------------------------------------- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> (中略) <body> <f:view> <h:form> <h:commandButton action="#{Test.clickTest}" value="テストボタン"></h:commandButton><br /> </h:form> </f:view> </body> </html> ---- test.jsp ここまで ------------------------------------- ※Test は 下記 Test.java で実装した管理Bean。スコープはrequest。 ---- Test.java ここから ------------------------------------- public class Test { public Test(){ System.out.println("コンストラクタを通っている。"); } public String clickTest() { System.out.println("ボタンが押された。"); return "clickTest"; } } ---- Test.java ここまで ------------------------------------- <コンソール出力結果> 最初のリクエスト時: コンストラクタを通っている。 テストボタン押下後: コンストラクタを通っている。 ボタンが押された。 このことから、リクエストのたびにコンストラクタが処理されていることが分かりました。 ASP.NETの Page#IsPostBack の様なものがあれば、最初のリクエストかどうかを判別できるのですが・・・! 以上です。 上記のようなコンストラクタを使用する以外でも、なにか良い方法は無いでしょうか? お詳しい方、何卒よろしくお願い申し上げます・・・!
- 締切済み
- Java
- PEAR HTTP_Requestでのヘッダ送信
PEARのHTTP_Requestを使用し、 下記処理にてTEST_URL向けにPOSTとヘッダを同時に送信する処理を行いたいのですが 411 Length Requiredで返ってきてしまします。 サーバのログには Invalid URI in request Connection: Keep-Alive というログがerrorログに出ています。 そこでRFCを読んで見ると、 転送コーディングが施されていない場合は Content-Length ヘッダは送られなければならないが、 メッセージボディ中のオクテット数と 正確に一致しなければならないとの記載がありました。 ここに引っかかっているのかもと思い対策しようと思いましたが メッセージボディのlength(下記の☆部分)をどのように拾うかがわかりません。 require_once "HTTP/Request.php"; $req = &new HTTP_Request(TEST_URL,array()); $req->setURL(TEST_URL); $req->setMethod(HTTP_REQUEST_METHOD_POST); $req->addHeader('Host',"test.hogehoge.jp\r\n"); $req->addHeader('Content-Length',"-☆-\r\n"); $req->addHeader('Connection', "Keep-Alive\r\n"); $req->addHeader('User-Agent',"TEST ABCDEFG\r\n"); $req->addPostData('TEST_POST', 'testnano'); $result = $req->sendRequest(); if(PEAR::isError($result)) { echo $result->getMessage(); echo "<br />"; } else { echo $req->getResponseCode(); echo "<br />"; echo $req->getResponseBody(); echo "<br />"; } もしかして違う原因でしょうか? よろしくおねがいします。
- 締切済み
- PHP
- jQueryのAjaxリクエストの動作について教えてください。トンチン
jQueryのAjaxリクエストの動作について教えてください。トンチンカンなことを言っていたら許してもらいたいのですが・・・ loadメソッドを使って別テキストから情報を持ってきています。 リロード(最新の情報に更新)してもうまく表示が変わらない場合があります。 ≪1≫絶対にうまくいく場合 1.テキストの中身を変更 2.ブラウザを開く 3.変更した情報が表示される。 ≪2≫たまに失敗する場合 1.ブラウザを開く 2.テキストの中身を変更 3.リロードする。F5を押す。最新の情報に更新...etcを実行してみる →このときは変わる時もあればいくら更新をしても変わってくれないときもあります。 この状態で新たにブラウザを開くと現状100パーセント更新されています。 リロードしても100パーセント変更されないのはなぜでしょうか? キャッシュがあるのでしょうか?? また、WEBページを開いたままにしておいてテキストを変更すれば勝手に変わるなんてことは理論上不可能ですよね? ページを見ている人にリロードをしてもらうことをお願いするなんて非現実的ですし・・・ ちなみにテキストの中身はVB.NETでやっています。サーバサイド側で何らかのキックを行ってloadだけ動かせたら面白いですが(汗)
- ベストアンサー
- AJAX
- IISでPOSTリクエストのエラー
IISでPOSTリクエストを実行すると、HTTP エラー 405.0 - Method Not Allowed 無効なメソッド (HTTP 動詞) が使用されているため、検索しているページを表示できません。 が表示されててしまいます。 IISのハンドラマッピングで 要求パス:*.html モジュール:ServerSideIncludeModule ハンドルする動詞:次の動詞のうちひとつ(GET,POST) アクセス:スクリプト に設定してます。 他に設定があるのか教えてください
- 締切済み
- その他([技術者向] コンピューター)
お礼
ありがとうございます。仕様なのですね。 非同期リクエストをあげてもサーバー側で スタックされてしまうのでは、 .NETでのAjax実装って少し物足りない気もしてきました。。。