0

製品のリストと「販売済み」という列があります。ユーザーがステータスを false または true に変更すると、Rails アプリで製品の HTML ページ インデックスを更新しますが、すべての HTML ページをリロードせずに、製品のステータスを含む「div」のみを更新します。私の人生を楽にするチュートリアルや宝石はありますか? 私が見つけたすべてのチュートリアルは、クライアント側の AJAX 要求に関するものです。

4

2 に答える 2

0

製品IDを行に動的に割り当てます。テキストを変更する「td」にクラス「status」を追加します。

%tr{:id => "product_#{product.id}"}
  %td Cell #Product
  %td.status Available
  %td #link_to controller method where product status is changed to 'Sold.'. Set ":remote => true" for request to be ajax.

ファイルsell_product.js.hamlを作成します(コントローラーメソッドとしてhamlとsell_productを考慮しています)。jsファイルで、特定のIDと$('。status')。text()を使用してテーブルの行を検索し、「Available」に置き換えて「Sold」に置き換えます。

于 2012-09-07T12:40:09.877 に答える
0

HTTPでは、「会話」は常にクライアントによって開始されるため、サーバーが開始する要求はできません。本当にこれを実行したい場合は、サーバーをWebページに埋め込み、サーバーを開いてポートでリッスンする必要があります。これは、Webページからサーバーを起動する方法がなく、多くのネットワークがブロックするため、問題があります。正当な理由のある着信リクエスト。

すでに表示されているページの更新は、通常、クライアントがAJAXを介してサーバーを定期的に(数秒に1回など)ポーリングして、何かが変更されたかどうかを確認することによって行われます。これを行う1つの方法は、クライアントに最後のチェックの時刻を送信させ、Product.where("updated_at > ?", timestamp)サーバー側でそれを返すことです。

于 2012-09-07T12:27:29.357 に答える