0

私のウェブページのURLはそのようなものです

url = http://www.example.com/2223/this-is-the-url-text-of-page

上記の URL2223は ID でありthis-is-the-url-text-of-page、データベースの別のフィールドに保存されている静的テキストです。id に基づいて Web ページ データを取得します。

しかし、タイトルは他の何よりもすぐに表示されなければならないものです。ですから、データベースからタイトルを取得してページの上部に表示するのは効率的ではないと思います。ページのタイトルを表示する標準的な方法は何ですか。

ほとんどのサイトはデータベースからタイトルを取得しますか?

また

ほとんどのサイトは URL にタイトルを追加しますか?

また

他に方法はありますか?

4

8 に答える 8

1

ページの上部に表示するのは効率的ではないと思います

むしろ依存します。タイトルは HTML 内の上部近くに埋め込まれています。これを後で注入する方法はありますが、実際には、通常は行う価値はありません。PHP/HTTP は、出力バッファリングが有効になっている場合に最適なパフォーマンスを発揮し、コンテンツが一気にブラウザに送信されます。したがって、「効率的な」解決策は、完全なコンテンツが利用可能になるまでブラウザに何も送信しないことです。スクリプトが非常に遅い (生成に約 4 秒以上かかる) 場合、DOM の構築方法によっては、HTML が不完全なときにブラウザーがレンダリングを開始する可能性があります。この場合、チャンク エンコーディングを強制すると改善される可能性があります。認識されたパフォーマンス - しかし、これは複雑で実装が困難です。

さらに、応答で送信される情報の最初のビットは、要求が期待どおりに動作したかどうか、つまりユーザーが認証されたかどうかです。スクリプトの処理に何か問題がありましたか? コンテンツは正常に検証されましたか、それともブラウザーを前のページにリダイレクトする必要がありますか? 認証トランジションでは、リクエストの処理後に Cookie をドロップする (つまり、ヘッダーを変更する) 必要もあります。データベースが機能していることを確認することは、その重要な部分です。出力の生成を開始する時期が早すぎると、応答ヘッダーで誤ったデータが返され、エラー条件を処理するオプションが減少します。

したがって、パフォーマンスと機能の両方の観点から、出力がどうなるかがわかるまで、出力の生成を遅らせる方がはるかに理にかなっています。

于 2013-04-21T09:58:05.263 に答える
1

一般的に、私の経験では、考慮すべき要素がいくつかあります。

  1. 実際のページ タイトルには、わかりやすい URL では失われる情報が含まれている場合があります。句読点または余分な単語。「インターネットにアクセスできません」というタイトルを、実際には「インターネットにアクセスできません」と表示する必要がありますか。
  2. ページを生成するには、通常、データベースからさらに情報が必要になると予想します。おそらく記事の内容、キーワード、ヘッダー画像などです。したがって、データベースクエリはとにかくそこにあります。
  3. フレンドリー URL の主な目的は、検索エンジンの最適化です。各ページの ID も渡すので、データベースは ID を検索します。データベース テーブルの主キーも ID にある限り、これは検索速度の向上に役立ちます。

あなたの質問のいくつかに答えるのに役立つことを願っています.

于 2013-04-21T09:43:15.003 に答える
0

ページを構築するときにタイトルを取得することを意味します->次に、データベースから別のフィールドから取得します。わかりやすい URL とタイトルを別々に保存します。

また、ユーザーが URL にタイトル部分を入力しない場合は、ID を使用して正しいページにリダイレクトします。


関連性がなくなった:

私は仮定します:データベース内のページの一連のリンクを動的に構築しようとしており(いつでも新しいページを作成したり、古いページを削除したりする可能性があります)、タイトルのみを取得する必要がありますか?

このために -> cron ジョブを 20 分間実行し、静的なインクルード ページを作成できます。新しいページに書き込み、完了したら、メイン インクルード 'links.html' を削除し、新しいページの名前をこれに変更します。

これをいつでも実行できるように、管理セクションにリンクを設定することもできます

もっと文脈を教えてください。標準的なソリューションはありません。というか、状況によって3~4人います。

于 2013-04-21T09:37:33.207 に答える
0

ページのタイトルは、次のように html ヘッダーで定義されます。

<title>php - What is the standard way to get the title of the page - Stack Overflow</title>

これは、ページとデザイナーによるページの作成方法に応じて、静的または動的になります。データベースを参照しようとしている場合、そこには見られないミックス全体があるため、何が問題なのかわかりません。

あなたは何を達成しようとしていますか?

于 2013-04-21T09:41:52.950 に答える
0

データベースを使用して、ページの残りの部分でタイトルを取得することをお勧めします。なんで?ID をチェックすることは、var に含まれているのは数字だけであることをチェックすることではありませんが、一方で文字列には、含めることができるものと含めることができないものの広い範囲があり、それに対するルールを作成するのが難しくなります。セキュリティの問題が発生します。

つまり、単純にクエリに結合を追加するだけで準備完了です。

次に、mod_rewrite を使用してこれらの URL を作成する場合、通常の $_GET 変数は引き続き使用できます。

3番目に、のような関数を使用できますend(explode('/', $url));

しかし最後に、データベースが推奨すると言ったように、グローバル var メソッドよりも安全であり、URL 文字列メソッドの「関数の実行」よりも信頼性が高くなります。

于 2013-04-21T09:43:32.420 に答える