Ajaxを利用したショッピングカートを実装するショッピングカートの例では説明のため省略形で実装されます。ソリューションは、固有のURLの生成に焦点を当て、そのユニークなURLが何かを購入使用して。
初期ソリューション 次のショッピング例のソースコードを示します。 ソース: /クライアント/ ajaxrest記事/建築/ shoppingcart.html ソースコードの例では、太字のコードの機能は、UniqueURLの特定の使用に関連する部分を表します。全体のコンテキスト内でHTMLページには、誰もショッピングカートを取得し、いくつかの商品を購入し使用して、親ページを表します。ページが読み込まれると、body.onloadイベントが呼び出されるように初期化関数を引き起こすトリガされます。初期化の実装では、unique.getItと呼ばれ、ユニークなURLは、ショッピングカートを表し、その結果。 body.onloadイベントに固有のURLのコードを追加することにより、誰でも自分の処分では、ショッピングカートがされるHTMLページの訪問を保証しています。生成されたURLは、ボタンが購入するには、関数、トリガたびにユーザーがクリックして使用されてBuyItemsと呼ばれる。これが何をしている任意のユーザーが購入する最後の残りの詳細を公開していますBuyItの一般的な実装は、ショッピングカートに追加することが重要ではありません。 asynchronous.postメソッド呼び出しでは、URLを使用unique.uniqueURLです。いつ購入したonCompleteの実装ではクリアして、uniqueURLデータメンバがクリアされ、新しいユニークなショッピングカートのURLが取得されます。コードをどのようにユニークなURLを使用しての理解を提供しますが、あなたは、次の考慮事項を理解する必要があります: •時に一意のURL / pyservices/shopping/cart/122343などは、クライアント識別子/チェックアウト追加されますが返されます。 nonappendedのURLを使用してPOSTを受け入れるように、複数のデータ構造のため、GETリクエストのURLが必要になるとは、非のREST準拠しているだろう。クライアント側では、識別子を追加する大したことはないが、サーバー上で、それは大したこととして、すぐに議論されるになっていません。 この例では、HTMLページ•HTMLページにアイテムを検索するにはコードを参照し、追加は含まれません。次の2つのソリューション:コンテンツの注入またはインラインフレームを使用することができます。コンテンツの注射を使用して、カタログの項目をHTMLコードでは、現在のHTMLページには、innerHTMLプロパティを使用して追加される作品となる。他のアプローチの場合は、操作の中から、カタログのアイテムの表示を分離することができます浮動インラインフレームを使用しています。 •ショッピングカートの場合には、一意のURLの所有者は、クライアントです。場合は、ユーザーがページをリフレッシュキーを押しますこれは、"どのように何を参照するのか?"サーバーは、一意のURLが何であるかは、クライアントも教えてくれない覚えて問題が発生します。クライアントとしてすぐに説明され、この使用してクライアント側のCookieを管理することができます。 維持経路ユニークなURLの 通常、Webアプリケーションフレームワークのサーバを維持する側のセッションオブジェクト、クッキーを使用します。一方、そのサーバー側のセッションオブジェクトの多くの問題を引き起こす可能性が、彼らが実際に多くの問題を解決するために思えるかもしれない。の場合、サービスはどこにも、Webサービスのドキュメントではこれまでどのようにセッションを維持するために、そのため、どのようにコードが書かれているの指示を検索するWebサービスを使用して指向アーキテクチャ(SOA)のクライアントを書いているとしましょう。用語を削除する Webサービス およびリモートプロシージャコールを使用します。デフォルトでは、リモートプロシージャコールはそれと呼ばれる覚えはありません。リモートプロシージャコールは、呼び出し元を覚えて期待するが、それは正しいアプローチです。どうしてそのセッションをサーバー側で使用するのは残念だが現実的な例を与えるためには、のようにAmazon.comで買い物していると言うと、いくつかのものを購入する。ので、あなたのお母さんの誕生日プレゼントとして、すべてを購入することを決めたあなたのショッピングカートの内容を払うつもりはありませんしています。として彼女のショッピングカートに渡す実際の生活雑貨店では、あなたのお母さんの購入お客様のショッピングカートの内容を有するものとしては簡単です。 Amazon.comは、それぞれおよびすべてのユーザーで1つのショッピングカートを取得します。したがって、その内容については、母親を支払う必要がするには、手動でリストは、あなたの母親にメールを作成する必要があります。それとも、彼女のクレジットカードの詳細については、あなたのお母さん求めることができる。最初のオプションをするのは簡単ですが、時間がかかると"不自由だ"として、お客様のショッピングカートの内容を記述する必要がありますし、彼女がショッピングカートにアイテムを追加している。それはまるで、お店にして、ショッピングカートを埋めるカートと手のアイテムのリストを作成する行くのは、あなたの母親のリストです。あなたのお母さんしてレースをする食料品店を回避し、これは彼女が支払うことと同じ項目を持つ彼女のショッピングカートをご記入ください。2番目のオプションは、このような余分な労力を必要としませんが、それは彼女のクレジットカードの詳細を説明する信頼あなたのお母さんが必要です。きっとあなたのお母さんを信頼するんだけど、彼女は恐らく不安になる、などと誰か。ご覧のように、存在しない可能なオプションはサーバを含む側には、セッションベースのURLです。 唯一の現実的オプションはサーバの使用を停止する側には、セッションがベースのURLと、クライアントは、URLへの参照の管理を固有のURLを使用して起動します。クライアントを使用する一意のURLを管理する新たな可能性を開きます。たとえば、その場合は、サウンドシステム、テレビ、ラジオを作成して、ショッピングカートにこれらの項目を追加しましょう。次に、付加価値のサービスとして、あなたは、あなたのショッピングカートを促進するたびに誰もあなたの超音波システムを購入するなら、彼らだけのショッピングカートと有料サイトでは、個々のアイテムを見つけて回る必要はありません。理論的には、別の構成で、複数のショッピングカートは、数千を作成することができます。しかし、今日はサーバーとの付加価値を、その種類を行うことはできません側は、セッションベースのURLの多くは、HTTP Cookie悪いと言うが、それに依存する方法クッキーを使用されます。私の実装の任意のタイプの補助的な役割として、クッキーを検討します。これは、Cookieとは今のクライアント側のクッキーや複数の遅延までの深さのクッキーについての議論に話をこの資料の後半インチがクライアント側またはサーバー側のクッキーの間に実質的な違いは、聞かせトークンは、クライアントが保持して送信サーバーに。クライアントまたはサーバーでは、トークンを割り当てることができますし、ショッピングカートの場合は、クライアントは、クッキーが割り当てられます。が割り当てられているCookieは、固有のURLであり、変更されたショッピングカートのコードとして(ただし、コードのみをわかりやすくするために省略されている次のとおりです): 太字のコードは、コードでは、Cookieを管理するための関連を表します。特に、3つとしては、まだ、まだ未定義の関数に使用されます:createCookie、readCookie、およびeraseCookie。これらの3つの関数を書くことを読んで、クッキーの削除に使用されます。機能の使いやすさに向けて、それを対象とされているとして読み取ることが可能と書き込みのキーと値のペアを簡単です。キーは、Cookieの名前とされている値は、Cookieの値です。クッキー機能のロジックは、次のとおりです: •ページが読み込まれると、初期化関数かどうかを名前カートを持つクッキーの存在を確認するために関数readCookieを使用して。場合は、Cookieが存在し、それは新しいクッキーを作成する必要はありませんがCookieの値は、データメンバunique.uniqueURLに割り当てられる必要があります。場合は、cookieが存在しない場合は、それがない関連付けられて、ショッピングカート、そのための関数unique.getItことを意味すると呼ばれる必要があります。 •メソッドunique.getItを使用して、そのときに、ユニークなURLが生成され、このメソッドはunique.haveItと呼ばれ取得する場合はクッキーをしています。 unique.haveItの実装では、クッキーはカートを2日間の有効期限を使用してデータメンバunique.uniqueURLの値が代入されます。 •ときには、ショッピングカートと支払われている新しい一意のURLは、既存のCookieは、関数eraseCookieを使用して消去され生成されます。クッキーのルーチンの実装では、document.cookieオブジェクトを操作します。 document.cookieオブジェクトを返すすべてのCookieは、現在のドメインに適用される。次のコードはCookie2は関数の実装を示します: 関数createCookie(名前、値、日)(場合(日)(ヴァール日=新しい日付();()+(日* 24 * 60 * 60 * 1000));ヴァール有効期限が切れる="(date.getTime date.setTime ; ="有効期限が切れる+ date.toGMTString();)他のヴァール=""有効期限が切れる; document.cookie =名前+"="+値+有効期限+";パス= /";)関数readCookie(名前)(ヴァールnameEQ =名前+"="; ヴァール= (';'); document.cookie.split約用(ヴァール= 0;私は"ca.length;私+ +)(ヴァール℃=約[私];ながら、((0)=='')λ= c.substring(1)c.length c.charAt;場合(c.indexOf(nameEQ)== 0)を返すc.substring(nameEQ.length、c.length);)はnullを返します;)関数eraseCookie(名前)( createCookie(名前,"",- 1);)太字のコードは、document.cookieオブジェクトを操作示しています。操作ではなく、完全に非正統的な独特のものです。 createCookieの実装では、バッファが作成され、その後document.cookieに割り当てられます。通常は、データメンバへの代入は、データメンバの値をリセットします。遠景document.cookieデータメンバです。割り当てると、データメンバのいずれか、新しいクッキーを作成または既存のCookieの値を再度割り当てます。 createCookieの実装では、パラメータの間は、Cookieが作成されては、クッキーを期限切れにすることを示す時間を割り当てる。場合は、クッキーとは、関数createCookieの日付時刻と、そのCookieは、ブラウザを閉じている瞬間失効すると関連付けられていないときは、データメンバdocument.cookie読み込む場合は、Cookieが現在読み込まれてドメインとドキュメントを取得され適用される。次のdocument.cookieの値の例かもしれない: 杏=値1;カートを= / pyservices /ショッピング/カート/ toRedirected これは、複数のクッキーを含む文字列ですdocument.cookieの値は、問題がある。解析される単一のクッキーを見つけるためには、文字列をしています。 readCookieの実装によって自動的に解析を管理し、特定のCookieの識別子の値を取得します。関数eraseCookieクッキーを削除するにはcreateCookie関数を使用します。繰り返しますが、この異例のだが、機能は、Cookieには自動的にCookieを削除する期限切れの日付を代入しています。 記事は、ソニアLandeを提出 免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。 重要: この記事は、実装"ショッピングカート"自動ソフトウェアによって翻訳されたAjaxを利用した。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。
|
|||||
| Online: 252 users browsing the articles directory |
|
|