タグ付けされた質問 「ajax」

AJAX(非同期JavascriptおよびXML)は、インタラクティブなWebサイトを作成するための一般的な手法です。

12
JSONデータではなくHTMLを返すエンドポイントの実際の問題は何ですか?
PHPの学習を始めたとき(約5〜6年前)、Ajaxについて学び、「フェーズ」を経ました。 サーバーはHTMLデータを返し、DOMの innerHTML 内に配置します XMLなどのデータ転送形式について学習し(「ああ、そういうことです」と言ってから)、JSONを学びます。 JSONを返し、バニラJavaScriptコードを使用してUIを構築します jQueryに移動します API、ヘッダー、HTTPステータスコード、REST、CORS、およびBootstrapについて学ぶ SPA、およびフロントエンドフレームワーク(React、Vue.js、およびAngularJS)およびJSON API標準を学びます。 いくつかのエンタープライズレガシーコードを受け取り、検査すると、ステップ1で説明されていることを実行していることがわかります。 このレガシコードベースで作業していたので、HTMLを返すことができるとは考えていませんでした(つまり、私たちは今、プロですよね?)。そのため、 Ajax呼び出しが生成されます。「プログラマー」に尋ねたとき、彼はHTMLを返し、innerHTMLでDOMに直接追加されると言った。 もちろん、これは受け入れがたいものでした。これをJSONエンドポイントにリファクタリングする方法を考え始め、エンドポイントの単体テストなどを考え始めました。ただし、このコードベースにはテストがありません。単一ではありません。そして、それは20万行以上です。もちろん、私のタスクの1つには、すべてをテストするためのアプローチの提案が含まれますが、現時点ではまだ取り組んでいません。 だから私はどこにも、不思議に思っています:テストがまったくないのであれば、このJSONエンドポイントを作成する特別な理由はありません(「再利用可能」ではないため、文字通り、アプリケーションですが、HTMLデータを返すため、これはすでに暗示されていると思います)。 これを行うことで正確に何が間違っていますか?
77 design  ajax 

2
Google Web Toolkitを使用しない場合 [閉まっている]
社内の主要なWebアプリ開発プロジェクトでGWTを使用することを検討しています。つまり、私の目での主な利点は、Javaスタックへのクロスコンパイルであり、(少なくとも理論的には)技術スタックのサイズを1つ削減するのに役立ちます。 ただし、(ほとんどの開発者と同様に)以前に焼かれたことがありますが、特定の問題ドメイン内での使用を妨げる、または制限するGWTの問題で実際に使用したプログラマーから聞いてみたいと思います。 GWTの使用に反対する論拠は何ですか?
55 java  javascript  ajax  gwt 

6
パフォーマンスを偽る隠されたAJAXリクエストはどれほど安全ですか?
隠されたAJAXリクエストとは何ですか? ユーザーのアクションがすぐに発生するように見えるように設計された非表示のAJAXリクエストの使用が増加していることに気付きました。このタイプのAJAXリクエストを非ブロッキングと呼びます。これは、ユーザーに発生を認識せずに行われたAJAXリクエストであり、バックグラウンドで実行され、操作はサイレントです(AJAX呼び出しが正常に完了したことを示す詳細はありません)。目標は、操作が実際に終了していないときにすぐに発生したように見えるようにすることです。 ノンブロッキングAJAXリクエストの例を次に示します。 ユーザーがメールのコレクションで[削除]をクリックします。アイテムは受信トレイからすぐに消え、他の操作を続行できます。一方、AJAXリクエストはバックグラウンドでアイテムの削除を処理しています。 ユーザーが新しいレコードのフォームに入力します。保存をクリックします。新しいアイテムがリストにすぐに表示されます。ユーザーは引き続き新しいレコードを追加できます。 明確にするために、AJAX要求をブロックする例を次に示します。 ユーザーがメールのコレクションで[削除]をクリックします。砂時計カーソルが表示されます。AJAX要求が行われ、応答すると砂時計カーソルがオフになります。ユーザーは、操作が完了するまで1秒待つ必要があります。 ユーザーが新しいレコードのフォームに入力します。保存をクリックします。AJAXローダーをアニメーション化すると、フォームが灰色に変わります。「データが保存されました」というメッセージが表示され、新しいレコードがリストに表示されます。 上記の2つのシナリオの違いは、非ブロッキングAJAXセットアップでは動作のフィードバックが提供されないことと、ブロッキングAJAXセットアップでは提供されることです。 隠されたAJAXリクエストのリスク このスタイルのAJAX要求の最大のリスクは、AJAX要求が失敗したときにWebアプリケーションがまったく異なる状態になる可能性があることです。 たとえば、非ブロッキングの例。 ユーザーは多数のメールを選択します。削除ボタンをクリックします。操作はすぐに行われるように見えます(項目はリストから消えます)。次に、ユーザーは[作成]ボタンをクリックして、新しいメールの入力を開始します。この時点で、JavaScriptコードがAJAXリクエストが失敗したことを発見します。スクリプトはエラーメッセージを表示する可能性がありますが、現時点では本当に意味がありません。 または、ブロッキングの例。 ユーザーは多数のメールを選択します。削除ボタンをクリックします。砂時計が見えますが、操作は失敗します。「error。blah blah blah」というエラーメッセージが表示されます。それらは電子メールのリストに戻り、削除したい電子メールが選択されたままです。彼らは再びそれらを削除しようとする可能性があります。 ノンブロッキングAJAXリクエストを実行するための他の技術的リスクもあります。ユーザーはブラウザを閉じ、別のWebサイトに移動し、現在のWebの別の場所に移動して、エラー応答のコンテキストを無意味にすることができます。 それで、なぜそんなに人気が出るのでしょうか? Facebook、Google、Microsoftなど。これらの大規模なドメインはすべて、非ブロッキングAJAXリクエストを使用して、操作が即座に実行されているように見せるようになっています。また、保存ボタンや送信ボタンのないフォームエディタが増えています。フィールドを出るかEnterキーを押すとすぐに。値が保存されます。プロフィールが更新されたというメッセージや保存手順はありません。 AJAXリクエストは確実ではなく、完了するまで成功として扱われるべきではありませんが、多くの主要なWebアプリケーションはそのように動作しています。 ノンブロッキングAJAX呼び出しを使用するこれらのWebサイトは、レスポンシブアプリケーションをシミュレートし、高速に表示されるという犠牲を払って不要なリスクを冒していますか? これは、競争力を維持するために私たち全員が従うべき設計パターンですか?

8
HTML5の使用を開始するにはどうすればよいですか?[閉まっている]
HTML5を学習するための推奨ワークフローは何ですか?どのツールをインストールする必要がありますか?どのSDKですか?どこから始めれば?テスト方法 デバッグ方法 私は何を読みますか? 「HTML5開発」と呼ばれることが多いのは、実際にはHTML、CSS、JSなどの混合物であることを理解していますが、より大きなプロジェクトがメモ帳で開発されているとは思いません。だからこそ、ワークフローに関するヒントやコツを明らかにするようお願いしています。
42 javascript  html  css  ajax  html5 

5
Webサーバーは同一生成元ポリシーをどのように実施しますか?
私はRESTful APIの開発により深く取り組み、これまでにいくつかの異なるフレームワークと連携してこれを実現してきました。もちろん、私は同じ起源のポリシーに遭遇しましたが、今では(Webブラウザーではなく)Webサーバーがどのようにそれを実施するのかと思っています。私が理解していることから、ブラウザの最後にいくつかの強制が行われているようです(たとえば、サーバーから受信したAccess-Control-Allow-Originヘッダーを尊重します)。しかし、サーバーはどうですか? たとえば、WebサーバーがAPIにアクセスするJavascript Webアプリをホストしており、そのサーバーでもホストされているとします。私は、サーバーが同一生成元ポリシーを適用すると想定しているため、そのサーバーでホストされているJavaScriptのみがAPIにアクセスできるようになります。これにより、他の誰かがそのAPIのjavascriptクライアントを記述して別のサイトでホストすることを防ぐことができますか?それでは、Webサーバーは、同じWebサーバーから発信されたjavascriptを実行していると主張しながら、APIエンドポイントにAJAXリクエストを行おうとする悪意のあるクライアントをどのように停止できますか?最も一般的なサーバー(Apache、nginx)は、この種の攻撃からどのように保護しますか?または、これについての私の理解は何とか外れていますか? または、クロスオリジンポリシーはクライアントエンドでのみ実施されますか?

12
Flash Webサイトからクライアントを話す方法は?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 私は最近、口コミの推奨事項のみを通じて、多くのWebサイドプロジェクトを行っています。私はデザイナーというよりもプログラマーですが、私の設計スキルはひどくなく、多くのプログラマーのようにUIを扱うことを嫌いません。その結果、コンテンツ管理のための最小限のバックエンドは別として、ほとんどのプログラミングがフロントエンドインターフェイス(javascript / cssを読む)で行われるサイドプロジェクトに魅了されます。 私が経験した最大の不満は、クライアントがFlashを望んでいないことを納得させることです。Flashの「開発」が本当に好きではないという事実は別として、Flashが望ましくない多くの実用的な理由があります(デバイス間の互換性の欠如、クライアントのアクセシビリティの低下、プラグイン要件、開発時間の増加など)。クライアントに「フラッシュウェブサイトを構築しません」と言うのではなく、戦術を使用して、これが実際に望んでいるものではないことを納得/説明します。 / css / jsを使用して、ユーザーのコンテンツをそらします。 他の人はこれに関してどのような実体験をしますか?通常、javascript / css / AJAXがほとんどのWebサイトにとってより良い選択肢であることを誰かにどのように説明しますか?なぜ人々は最初からFlashを使いたくないのですか? この質問は、フラッシュを望む技術的な理由はないが、それがきれいなウェブサイトを作ると思うので、それが欲しいだけのクライアントに関係しています。
21 javascript  html  css  ajax  flash 

1
ネストされたREST URLと親ID、どちらが優れた設計ですか?
さて、2つのリソースがAlbumありSongます:と。APIは次のとおりです。 GET,POST /albums GET,POST /albums/:albumId GET,POST /albums/:albumId/songs GET,POST /albums/:albumId/songs/:songId 私たちはいくつかの歌が嫌いであることを知っていSusyます。たとえば、と呼ばれます。どこにsearch行動を起こすべきか? 別の質問。さて、今ではもっとリアルになっています。アルバム1を開き、すべての曲を読み込みます。JSオブジェクトを作成します。それぞれが曲データを保持しremove、次のようなメソッドはほとんどありませんupdate。 曲オブジェクトにはID、名前、およびものがありますが、どの親に属しているかについての手がかりはありません。これは、クエリによって曲のリストを取得するためです。私が間違っている? だから、私はいくつかの解決策を見ますが、私は本当に確信がありません。 親IDをオプションにします-get-parameterとして。私は現在このアプローチを使用していますが、butいアプローチだと感じています。 List,Create /songs?album=albumId Update,Delete /songs/:songId Get /songs/?name=susy # also, solution for first question ハイブリッド。OPTIONSメタデータを取得するためのクエリを実行するためにアルバムIDが必要なため、今では便利です。 List,Create /album/:albumId/songs Update,Delete /songs/:songId POST /songs/search # also, solution for first question 各リソースインスタンスで完全なURLを返します。APIは同じですが、次のような曲を取得します。 id: 5 name: 'Elegy' url: /albums/2/songs/5 このアプローチはHATEOASと呼ばれると聞きました。 だから...親IDを提供するには id: 5 …

1
同じアプリケーション内のRESTful HTTPとwebsocket?
アプリケーションがWebSocketライブフィード用に既に開かれている場合、AJAXサーバーとのその他の通信にそれを使用する必要がありますか? 接続はすでに開かれているので、Request/Responseリアルタイムではなく、リアルタイムのリクエストに使用する必要がありますか? RESTful HTTPリクエストのほうがデバッグが簡単だと思うので、リクエストを好む ブラウザでURLまたはカールを使用して、APIが返すものをテストできます。を開くためにコードを記述する必要はありませんWebSocket。 同じアプリケーションにRESTful HTTP APIあるのWebSocketは奇妙でしょうか?
17 rest  ajax  websockets 

5
Web APIを使用した純粋なフロントエンドJavaScriptとajaxを使用したMVCビュー
これは、最近のWebアプリケーションの分割方法に関する人々の考えについての議論でした。 私は、すべてのビューとコントローラーを備えたMVCアプリケーションの作成に慣れています。通常、完全なビューを作成し、すぐにデータを入力したくない特定の領域がなければ、DOMページ読み込みイベントを使用してサーバーを呼び出して他の領域を読み込む場合を除き、フルページリクエストでこれをブラウザに返します。 AJAXを使用します。 また、ページの部分的な更新については、MVCアクションメソッドを呼び出して、HTMLフラグメントを返します。このメソッドを使用して、ページの一部にデータを入力できます。これは、最初のページの読み込みを遅くしたくないエリアや、AJAX呼び出しに適したエリアに適しています。1つの例は、テーブルページングです。次のページに進みたい場合は、ページ全体の更新を使用するのではなく、AJAX呼び出しがその情報を取得した方がよいでしょう。ただし、AJAX呼び出しはHTMLフラグメントを返します。 私の質問は。私は純粋なフロントエンドの背景ではなく、.netの背景から来ているので、この古風なものに対する私の考えはありますか? 私が一緒に仕事をしているインテリジェントなフロントエンド開発者は、MVCビューで多かれ少なかれ何もしないことを好み、むしろフロントエンドですべてを行います。すぐにWeb API呼び出しがページに入力されます。そのため、HTMLを返すMVCアクションメソッドを呼び出すのではなく、標準オブジェクトを返し、javascriptを使用してページのすべての要素を作成することを好みます。 フロントエンドの開発者の方法は、クライアント側の検証を含む、MVCモデルの検証で通常得られるメリットがなくなることを意味します。また、強く型付けされたhtmlテンプレートなどを使用してビューを作成することで得られる利点がすべてなくなることも意味します。 これは、フロントエンドとバックエンドの検証で同じ検証を記述する必要があることを意味すると考えています。JavaScriptには、DOMのすべての異なる部分を作成するための多くのメソッドも必要です。たとえば、テーブルに新しい行を追加する場合、通常、MVC部分ビューを使用して行を作成し、これをAJAX呼び出しの一部として返します。これはテーブルに挿入されます。純粋なフロントエンドの方法を使用すると、javascriptはAPI呼び出しから行のオブジェクト(たとえば製品)を取得し、そのオブジェクトから行を作成します。テーブル行の個々の部分を作成します。 問題のWebサイトには、管理、フォーム、製品検索など、さまざまな分野があります。私が考えていないWebサイトは、単一ページのアプリケーション方法で設計する必要はありません。 これについての皆の考えは何ですか? フロントエンドの開発者とバックエンドの開発者の意見を聞きたいです。

1
多くの非同期呼び出しとAPIの単一呼び出し
特に、JavaScriptを介してHTML5フロントエンドで使用されるREST APIを開発しています。このアプリケーションは組織内で使用するためのもので、通常は約300人のユーザーがいますが、1000ユーザー程度までスケールアップしたいと考えています。 通常、APIへの接続はLAN内で行われるため、接続の品質と遅延は良好になりますが、3G / 4Gを介した接続が遅く、遅延が発生する可能性のあるインターネットでの時折の使用は除外されません。 私たちが考えた2つのオプションは次のとおりです。 フロントエンドは、APIに対して複数の非同期呼び出しを同時に行い、インターフェイスのさまざまなコンポーネントをロードします。 長所:シンプル。 短所:サーバーへの接続が増えます。 フロントエンドのコントローラーは、オブジェクトを取得する必要があるパラメーターとして渡すAPIを1回呼び出します。 長所:サーバーへの接続は1つだけですが、サーバーはデータベースに複数の接続を作成します。 短所:フロントエンドとAPIの両方のメカニズムが必要です。設計が複雑になります。 詳細な説明:さまざまなリソース... / Product ... / Locationsなどがあります。これらのリソースは単独で取得できますが、別の抽象的なリソース... / screen?Product&Locationsが1回の呼び出しで両方を取得します。
12 rest  api  ajax 

1
Ajaxを多用するWebアプリケーションのパターン
これまで、私はWebアプリケーションを開発するためのMVCパターンの大ファンでした。Webの場合、私は主にPHP(KohanaおよびCodeIgniterフレームワークを使用)およびRuby(RoR)で開発しました。 私のアプリケーションがAjax側で重くなると(単一ページのアプリなど)、MVCの非常に基本的な概念を裏切るしかないわけではないことに気付きました。Javascriptはほとんどの作業を行っています。ビューまたはその他のjs / jsonコードを要求するためだけにコントローラーを呼び出すことは間違っているようです。 すべてのルーティングジョブをコントローラーに保持するように努めた後、基本的にそれらを(つまり、フレームワークのPoV、ビューの一部から)Javascriptに分割しました。JSONを求める場合にはMVCの転覆は、より明白になります要求をしているJSコードがあるコントローラ。フレームワークのコントローラーは、単にモデルのデータのプロキシとして機能しているだけです-私が実際に求めているのは。 だから、私は何を調べるべきですか? バックボーンとしてbackbone.jsとドキュメントベースのjson-spittingデータベース(couchDB)を使用するなど、純粋なjavascriptアプリケーションを考えていましたが、リレーショナルデータベースが大好きです。 別のオプションは次のとおりです。PHP/ ruby​​ / go / whatnotで「ルーティングモデル」を作成するだけです。それらはリクエストを分析し、dbを呼び出し、jsonを返します。 このアプローチは私には興味深いように見えますが、実質的な文書や学術的な分析がないため、飛躍を少し恐れています。 アイデア?

3
RESTを使用してリクエストを処理する場合とAJAXを使用してリクエストを処理する場合[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 6年前休業。 私のWebページで、動的なドロップダウン(選択した国に基づく都市名など)を表示したい場合は、AJAXを使用して表示できます。しかし、REST呼び出しを使用してそれを行うこともできます。どちらを使用すればよいですか? 私の問題は、RESTと他のHTTPブラウザーリクエストの違いがまったくわからないことです(フォーム送信)。RESTの正式な定義を見てきましたが、HTTPリクエストと同じように見えます。では、RESTは本質的にAJAXとどう違うのでしょうか?
12 rest  ajax 

3
順序付け/プロパティを変更できるページ分割された結果をキャッシュするためのベストプラクティスは何ですか?
順序付け/プロパティを変更できるページ分割された検索結果をキャッシュするためのベストプラクティスは何ですか? 私のアプリケーションでは、誰かが最新の20のディスカッションスレッド(10,000のうち)を見たいとします。servletXML、JSONとしてディスカッションスレッドテーブルから最初の20レコードを取得するために、を介してデータベースにリクエストが送信されます。その後、次の20を表示したい場合、結果の次のページに移動し、次のロットを取得するための別の要求を開始します(制限とオフセット= 20など)。 サーバーの負荷とクライアント待機を減らすために、結果の前のページをキャッシュしたいと思います。ただし、2つの質問があります。 結果が表示されるテーブルは、複数の属性(つまり、thread-creation-date、thread-author、last-post-date)で並べ替えることができます。これは、「最初の20件の結果」のような文は、コンテキストなしでは意味をなさないことを意味します(つまり、私たちは何によって注文するのか)。それでは、フロントエンドはどのようにしてバックエンドに既にロードしたものと通信しますか?最初に考えたのは、各結果にIDを使用することでしたが、後続のリクエストでIDをサーバーに送り返す(およびそれらに基づいて結果をフィルタリングする)のは、すべてを盲目的に送り返すのと同じくらい時間がかかります。これどうやってするの? 以前に返された結果(つまり、最新のポスト日付)の属性が変更された場合はどうなりますか?次に、各結果をチェックインして、ページインされてからサーバー側で変更されているかどうかを確認する方法が必要です。これを行うにはどうすればよいですか?

4
ビジネスロジックは本当にサーバーに属していますか?
Webアプリケーションの一般的なスタックは、データベース、サーバーサイドコードを備えたサーバー、HTML / CSS / JavaScriptを備えたブラウザーを備えたユーザーです。 広範なAJAXが登場する前は、コントローラーがサーバー側コードであるMVCが決着していました。サーバーは動的Webページ(つまり、JSPやASPなどのテンプレート化されたHTMLソリューション)に対する応答要求をルーティングする必要がありました。サーバーは、データベースへの呼び出しを調整し、ページ要求への応答に使用する動的ページを決定します。これらすべての結果、ビジネスロジックはページを提供するという考えに強く結び付けられていませんが、サーバーには最終的にビジネスロジックが含まれています。 「Web 2.0」に移行すると、サーバーサーバーの静的ページは、JavaScriptを使用してデータを入力し、表示内容を変更します。JavaScriptに含めることができます。JavaScriptは多くの場合、RESTfulサービスを実装しています。つまり、データベースクエリを指定しています。 したがって、サーバーは、実際のファイルを提供し、AJAX呼び出しに応答する役割に任されています。また、AJAX呼び出しへの応答は、セッション管理とセキュリティの提供にすぎません。そして実際、ユーザーが見ることができるのは、データベースで指定されるべきデータです。 そこで、そこから、サーバーを、電子メールの送信やWebサービスの起動など、たまにしか行わない、ダムの仲介者の役割に追いやるべきですか?ビジネスロジックがすべてJavaScriptに存在する(秘密でない場合)か、それがストアドプロシージャに存在する可能性がありますか? サーバーとデータベースを組み合わせたり、SAPのようなERPソリューションをサーバーとして機能させることは理にかなっていますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.