0

かなり甘いものを作ろうと考えていますが、それが可能かどうかはわかりません。これは、サーバーへの接続を確立するために使用できる非常に基本的な ajax 関数の例です...

function getFakePage(userId)
{
    var ajaxObject, path, params;

    ajaxObject = getAjaxObject();
    params = "?userId=" + userId
    path = getInternalPath() + "someServlet" + params;

    ajaxObject.open("GET", path, true);
    ajaxObject.send();

    // On ready state change stuff here
}

たとえば、このような URL があるとします...

https://localhost:8443/Instride/user/1/admin

そして、JavaScript を使用してユーザーをこの URL にリダイレクトしたいと考えていました。普段ならこれだけでいいのに…

window.location = "https://localhost:8443/Instride/user/1/admin";

しかし、私の考えは、コードとコードを組み合わせることができるjavascript (js フレームワークは使用しないでください)関数を作成することです。基本的に私が達成したいのは、ajax経由でサーバーとの接続を作成し、そのサーバーでユーザーをリダイレクトしたいURLにサーブレットを送信し、ユーザーをそのURLにリダイレクトすることです。そのため、ユーザーが世界中のどこからでも私のサーバーに接続するのにどれだけ時間がかかっても、空白の白いページではなく読み込みアイコンが表示されます。ajaxwindow.location

だから私が達成しようとしていることを正確に明確にするために。window.location を ajax 関数の成功範囲内に入れたくありません (2 回のラウンド トリップが含まれるため)。また、要求されたリソースの HTML の巨大なチャンクを返してページに追加したくありません。ajax を使用してサーバーへの接続を確立し、ユーザーがアクセスしたい URL をサーブレットに送信してから、何らかの形で ajax 関数をオーバーライドしてそのユーザーをリダイレクトしたいと考えています。これは可能ですか?

これをばかげていると思う人もいるかもしれませんが、ダイヤルアップ接続が遅い海外のユーザーが白いページをじっと見つめている場合はそうではありません。もし可能でしたら、少しでもお知恵を拝借したいです。どうもありがとうございました!

4

2 に答える 2

0

AJAX リクエストと場所の変更を同時に行うことはできません。リクエストを 1 つだけ実行する場合は、これらの方法のいずれかを選択する必要があります。すなわち。一部のデータを返し、現在のページのコンテンツを置き換えるか、まったく新しいページをロードします。

両方やりたいと思っても意味がありません。必要のはステートフルURL です。コンテンツが AJAX リクエストからのものであっても、URL は表示されるコンテンツと一致します。その場合の簡単な解決策は、#自由に変更できる URL の部分 ( window.location.hash) を使用することです。最新のブラウザの中には、ページをリロードせずに URL 全体を変更できるものがあります。私は#自分自身で大成功を収めて使用しました。

于 2013-04-25T19:05:22.977 に答える