すべてのタイプのユーザー({guest、loggedIn})が異なる文化({en-US ...})で[N]ページを表示できるWebサイトを開発しています。私は、各ページのキャッシュを処理するためにGetVaryByCustomStringを使用しています:文化ごとのユーザー1人あたりのOutputCaching、メモリの性能
Public Overrides Function GetVaryByCustomString(ByVal currentContext As HTTPContext, ByVal customArgs As String) As String
Select Case customArgs
Case "userAndCulture"
Return String.Format("{0}{1}", Languages.getLanguageID(), User.getUserID(0))
End Select
Return MyBase.GetVaryByCustomString(currentContext, customArgs)
End Function
注:getUserIDは()DBNull.Valueのデフォルトの「returnValueWhenNullを」(それが仕事のほとんどのSQLのために使われている)があるので、私は送信しています0(ゼロ)であるため、すべてのゲストは同じページを持ちます。
しかし、私の主な質問は、そのようなメカニズムはメモリの面でサーバを殺しませんか?つまり、潜在的な[loggedInUsersCount] * [culturesCount] * [pagesCount]ページはありませんか?
もう一つの注意:ページがキャッシュは有限の制限があるので、それがサーバーを殺すことはありませんだけ