ページのレンダリングをAjaxに大きく依存しているC#.Netアプリケーションがあります。ユーザーがページを上下にスクロールすると、新しいコンテンツが読み込まれます。生データをJSON経由でJavascriptに配信し、JSがそれを介してHTMLマークアップを作成し、ページに書き込みます。
同時に、.Netを使用して最初のページのコンテンツを配信し、検索エンジンと非JSブラウザーが何かを消化できるようにする必要があります。同じ生データを使用してマークアップをリテラルコントロールにレンダリングするC#。
問題は、C#とJavaScriptの両方で同じフォーマットルールをコーディングしていることに気付くということです。これは不要のようです。
簡単な例:
これはC#で...
for (int x=0; x < lines.Length; x++)
{
html.Append("<div>");
html.Append(lines[x].Title);
html.Append("</div>");
}
... JavaScriptではこれと一致します:
for (int x=0; x < lines.length; x++)
{
html += "<div>";
html += lines[x].Title ;
html += "</div>";
}
フォーマット/レイアウトを変更するには、両方を変更する必要があります。
したがって、私の提案する解決策は、XSLTを使用することです。
.Netを使用して新しいコンテンツのXMLファイルをオンザフライで生成すると、JSと.Netの両方が同じXSLTファイルを使用してXHTMLに変換し、マークアップを出力することができます。
私が見ることができる唯一の欠点は、.NetがXMLを生成して、それをマークアップに変換することだけであるということです。これは冗長に思えますが、フロントエンドマークアップのごく一部のみが実際に.Netによって生成されるため、ページの読み込み遅延は最小限に抑える必要があります。
これについて何か考えはありますか?代替案はありますか?