2

PostgreSQL 8.4 と WEBrick を使用して Ubuntu で Rails 3 を実行しています。

正常に動作していますが、大きなテーブル (数百行) を表示すると、何か問題が発生します。ブラウザーはページがまだロード中であることを示していますが、クエリの結果が切り詰められているか、Rails が壊れているように見えます。ログまたはコンソールにエラーはありません。

以下の 8 行目は不正な HTML です。表の 140 行目あたりで発生します。ただし、下の行の後にさらに行が表示され続けます。

<tr class="from_hc"> 
  <td class="date_and_time">Jul 13, 2011 11:00 AM</td> 
  <td class="name">Kim Orange</td> 
  <td>PHYSICAL_ACTIVITY</td> 
  <td>text text</td> 
  <td>ok</td> 
  <td></td> 
  <td><a href="/messag/a></td>
</tr>
<tr class="from_hc"> 
  <td class="date_and_time">Jul 13, 2011 11:00 AM</td> 
  <td class="name">Tom White</td> 
  <td>PHYSICAL_ACTIVITY</td> 
  <td>text text</td> 
  <td>ok</td> 
  <td></td> 
  <td><a href="/messages/260/edit">Edit</a></td> 
</tr>

返される行数に問題がありますか? Rails、PostgreSQL、または WEBrick で設定する必要がある構成はありますか? SSLに問題がある可能性はありますか?何が原因でしょうか?

同じコードとテーブルが Heroku でも問題なく動作するので、WEBrick の構成の問題なのだろうか...

Postgres の「shared_memory」を増やしましたが、役に立ちませんでした。

ありがとう!!!

4

3 に答える 3

1

Web サーバーを変更して、mongrel または thin を使用してみましたか? また、Ruby と Rails のバージョンを変更してみてください。

スタックの一部でバグが発生している可能性は十分にあり、それを可能な限り排除する必要があります。

コンソールを開いて、影響を受けるレコードで @model.to_param を実行してみてください。他のレコードと見た目が違う?特殊文字はありますか?

于 2011-08-12T23:54:58.153 に答える
1

ほとんどの場合、応答タイムアウトまたはメモリ/サーバー リソースの制限に達しています。

データが完全に無意味になるため、Web アプリを気にせずに、どのアプリでも大量のデータを実際に返すべきではありません。これがビューの場合は、ページネーションを使用して、一度に少量のデータのみが処理されるようにします (人々はその数のレコードを理解することができません)。

統計分析のためにこれが必要な場合は、バックグラウンド タスク (rake タスクでしょうか?) を実行してデータを収集し、分析して、すべての統計が計算された単純な単一のレコードを出力します。

これが何らかのフィードまたはエクスポート機能である場合は、適切なタイミングでアプリによって提供できるアセットとして保存される最終的な xml ドキュメント ファイルを生成する rake タスクのバックグラウンド ジョブが最適なソリューションです。

ユーザーが何年も座ってモニターを見つめるのを避ける以外の理由で、サーバーを拘束する危険があり、他の訪問者への応答時間が劇的に低下します.

これは本当に悪い習慣です。お金も時間もかかります。あなた (帯域幅とサーバー リソース) と訪問者の両方がより長く待たなければならず (時は金なり)、クラウド ペイ パー メガバイト ホストの場合はより多くのホスティング料金が発生するため、アプローチを変更することを強くお勧めします.

経験則として、Google と同じように、1 ページあたり 10 件の結果を表示します (検索結果で 10 ページを超えるサーファーは何人いますか?)

于 2011-07-23T06:41:57.327 に答える
0

データベースのいくつかの行に非 UTF-8 (UTF-16?) 文字があったことがわかりました。具体的には、Microsoft Word が作成するスマート クォート、アポストロフィ、および省略記号です。ユーザーが Word から Web フォームにカット アンド ペーストしました。

将来、これを防ぐためにPostgreSQLでUTF-8を強制する方法があるのだろうか...

于 2011-08-17T16:07:21.560 に答える