मैं सी # 2.0 के साथ एएसपी.NET का उपयोग कर रहा हूं। मैंने डेटाबेस के लिए कुछ ऑब्जेक्ट बनाए हैं और इनमें से प्रत्येक ऑब्जेक्ट में गुण हैं जिन्हें मूल रूप से कहा जा सकता है या उन्हें इसी तरह से बुलाया जाता है और उनमें से RESTful JSON API बनाते हैं।सर्वर साइड और क्लाइंट साइड विधि
मैं टैब-तरह बातें मैं इस साइट पर 'मॉड्यूल' कहते हैं की एक बहुत कुछ है - एक मॉड्यूल का कार्य HTML के लिए डेटा परिवर्तित करने के लिए पृष्ठ पर प्रदर्शित किया जा सकता है। आदर्श टैब को लोड करने के लिए पहले टैब के लिए दोनों सर्वर पक्ष सी # कोड में यह करने की ज़रूरत है, फिर टैब को क्लिक करते समय दूसरों को लोड करने के लिए अजाक्स का उपयोग करें, हालांकि पुराने ब्राउज़र और खोज इंजन के लिए, टैब अभी भी एक लिंक है जो लोड करेगा एक ही एचटीएमएल कोड सर्वर पक्ष।
वर्तमान में मैं सी # कोड है कि HTML करने के लिए प्रत्येक मॉड्यूल धर्मान्तरित से पूरी तरह से अलग से जावा स्क्रिप्ट कोड writting है, लेकिन विधि वस्तुतः एक ही है, बस एक अलग भाषा है। इस उदाहरण के समान।
सी # कोड
public override string GetHtml()
{
IJsonObjectCollection<Person> response = ((Village)page).People;
string html = "<div id=\"test\">";
foreach (Person person in response)
{
html += "<div class=\"person\">";
html += person.Name;
if(canEdit) html += "*";
html += "</div>";
}
return html + "</div>";
}
जावा स्क्रिप्ट कोड
function getHtml() {
JsonRequest('/json/villages/1/people', function(response) {
var html = '<div id="test">';
for (int i = 0; i < response.length; i++)
{
var person = response[i];
html += '<div class="person">';
html += person.name;
if(canEdit) html += '*';
html += '</div>';
}
return html + '</div>';
});
}
आप शायद देख सकते हैं, जहां मैं इस सवाल के साथ जा रहा हूँ। ऐसा करने का सबसे प्रभावी तरीका क्या होगा? मैं कुछ अलग विकल्पों की सोच रहा था -
1. प्रत्येक ModuleToHtmlMethod एक वर्ग है कि HTML में इस डेटा वस्तु मोड़ की विधि को परिभाषित करता है हो सकता है। मैंने इसका प्रयास किया, लेकिन मैंने रोका क्योंकि मैं बहुत जटिल हो रहा था।
2. अपनी खुद की स्क्रिप्टिंग भाषा लिखें जिसे सी # के रूप में व्याख्या किया जा सकता है लेकिन जावास्क्रिप्ट कोड में 'संकलित' भी किया जा सकता है।
3. बस सी # में बहुत कुछ लिख सकते हैं और अजाक्स का उपयोग बस सी #
4. से HTML सामग्री का अनुरोध करने के कोड अलग रखें और हर विधि दो बार लिखें।
मैं अंततः अन्य डेवलपर्स को इन 'मॉड्यूल' लिखने की अनुमति देना चाहता हूं, तो शायद विकल्प सबसे अच्छा विकल्प है?
मुझे लगता है कि यह शायद जाने के लिए सबसे अच्छा तरीका है। यहां समस्या यह है कि अधिकांश कोड लूप में है (जो काफी बड़ा हो सकता है), इसलिए अधिकांश HTML को दोहराया जाएगा, जो नाटकीय रूप से प्रतिक्रिया आकार में वृद्धि करेगा। Gzip संपीड़न मुझे यहाँ मदद करेंगे? – Connell
gzip का उपयोग करके आपको प्रतिक्रिया आकार के 50-70% दाढ़ी चाहिए, यह देखने के लिए आपका कॉल है कि यह स्वीकार्य है या नहीं। JSON RESTful API और HTML RESTful API का उपयोग करके आपको उसी प्रतिक्रिया के बीच बाइट्स में अंतर की गणना करनी चाहिए। यदि अंतर 50% से कम है, तो gzip निश्चित रूप से मार्कअप ओवरहेड को हल करेगा। –
मुझे आपको यह बताने के लिए परीक्षण करने की आवश्यकता नहीं है कि इसे 50% से अधिक अतिरिक्त होने की आवश्यकता होगी। ऐसे लूप होते हैं जो आम तौर पर 10-20 बार गोल करते हैं, लेकिन डेटा के प्रकार के आधार पर 50 विषम तक बढ़ा सकते हैं। फिर एचटीएमएल कोड '