2

そのため、私たちのウェブサイトでは を使用してSiteMapいます。リクエストごとにいくつかのメニューをレンダリングし、それをSiteMap.RootNodeヘルパー関数で行います。

ここで、 dotTraceを使用して Web サイトのプロファイリングを行ったところ、多くの時間がかかっていることがわかりましget_RootNode()た (約 70 ~ 75 ミリ秒)。SiteMapしかし、が静的であることはわかっています。だから、私はどうにかしてSiteMap.RootNode一度だけ取得し、Application_Start各リクエストを通してそれにアクセスすることを考えています。

それで、私の質問は、

私のアプローチは正しいですか?どうすればいいですか?または、私が使用できる効率的な方法はありますかSiteMap.RootNode

ありがとう。

4

1 に答える 1

0

私はまさにこの理由でサイトマップを避けてきました。数百ページまでは問題ありませんが、それを超えるとパフォーマンスが低下し始めます。

私はそれらが小さなウェブサイトか何かのための単純な入門タイプのツールであることを意図していると思います。

私は自分のcmsを作成しました。理論的には、同じようにデータを構造化する同様のcms /アプリを使用している場合は、現在のページID /のすべての子を取得することで、データベースからメニューリストを短時間で取得できるはずです。同様のコンテキストベースのクエリのいくつかの形式。

ただし、(私が言っているように)サイトマップをより小さな部分的なマップに分割し、それらからメニューリストをプルしてパフォーマンスを向上させることができます。

ただし、サイトのページ数が500ページ未満の場合は、コーディングに疑問があります...それはカスタムサイトマップですか?プロバイダーはリソースロックなどを待っていますか?

代わりにxmldocumentクラスを使用してデータをプルすることを検討しましたか?(ちょっとした考え)

于 2010-05-17T15:23:22.577 に答える