मैंने हमेशा सोचा है कि एचटीएमएल पेज बनाने के लिए क्लाइंट-साइड कोड बनाम सर्वर-साइड कोड का उपयोग करने के बीच चयन करने का निर्णय कैसे लिया जाए। मैं अपने प्रश्न को और समझाने के लिए एक बहुत ही सरल PHP बनाम जावास्क्रिप्ट/jquery उदाहरण का उपयोग करूंगा। आपकी सलाह और टिप्पणी बहुत सराहना की है।सर्वर-साइड या क्लाइंट-साइड पर वेब पेज बनाना?
कहें कि मैं अपने वेब पेज में एक प्रकार की रिपोर्ट चुनने के लिए किसी उपयोगकर्ता को एक वेब पेज पेश करने वाला हूं। जो अधिक समझ में आता है?
सर्वर साइड निर्माण के लिए, मैं यह कर चाहते हैं:
<!-- filename: reportScreen.html -->
<div id="reportChoices">
</div>
<!-- I could put this in the document.ready handler, of course -->
<script type="text/javascript">
$.getJSON("rt.php", {}, function(data) {
var mainDiv = $("#reportChoices");
$.each(data, function(idx, jsonData) {
var newInput = $(document.createElement('input'));
newInput
.attr("type", "radio")
.attr("name", "reportType")
.attr("value", jsonData["htmlID"])
mainDiv.append(newInput).append(jsonData["htmlLabel"]);
});
};
</script>
:
<div id="reportChoices">
<?php
// filename: reportScreen.php
// just for the sake of simplicity, say a database returns the following rows
// that indicates the type of reports that are available:
$results = array(
array("htmlID"=>"battingaverage", "htmlLabel"=>"Batting AVG report"),
array("htmlID"=>"homeruntotals", "htmlLabel"=>"Home Run Totals report"),
);
foreach ($results AS $data)
echo "<input type='radio' name='reportType' value='{$data['htmlID']}'/>{$data['htmlLabel']}";
?>
</div>
क्लाइंट-साइड कोड का उपयोग करना, मैं निम्नलिखित की तरह पेज बनाने के लिए जावास्क्रिप्ट प्राप्त होता
<?php
// filename: rt.php
// again, let's assume something like this was returned from the db regarding available report types
$results = array(
array("htmlID"=>"battingaverage", "htmlLabel"=>"Batting AVG report"),
array("htmlID"=>"homeruntotals", "htmlLabel"=>"Home Run Totals report"),
);
echo json_encode($results);
?>
यह एक बहुत ही सरल उदाहरण है, लेकिन इधर-उधर: सभी मैं सर्वर पर की आवश्यकता होगी एक डेटा डंप PHP स्क्रिप्ट जैसे है मैं यह हूं, मैं विभिन्न क्षेत्रों में पेशेवरों और विपक्ष को देखता हूं।
1 - सर्वर-साइड समाधान का सब कुछ कैसे बनाया गया है इसके पीछे वास्तविक प्रोग्रामिंग तर्क को छिपाने में सक्षम होने का लाभ है। जब उपयोगकर्ता पृष्ठ स्रोत को देखता है, तो वे जो भी देखते हैं वह पहले से निर्मित वेब पेज है। दूसरे शब्दों में, क्लाइंट-साइड समाधान आपके सभी स्रोत कोड और प्रोग्रामिंग तर्क को देता है कि कुछ चीजें कैसे बनाई जाती हैं। लेकिन आप अपने स्रोत को और अधिक गूढ़ दिखने के लिए एक मिनीफायर का उपयोग कर सकते हैं।
2 - क्लाइंट-साइड समाधान क्लाइंट सिस्टम पर "संसाधन लोड" स्थानांतरित करता है (यानी ब्राउज़र को अधिकांश पृष्ठ बनाने के लिए क्लाइंट के कंप्यूटर संसाधनों का उपयोग करने की आवश्यकता होती है) जबकि सर्वर साइड समाधान नीचे गिरता है, ठीक है, सर्वर।
3 - रखरखाव और पठनीयता की बात आने पर क्लाइंट-साइड समाधान शायद अधिक सुरुचिपूर्ण है। लेकिन फिर, मैं PHP पुस्तकालयों का उपयोग कर सकता था जो HTML नियंत्रणों को मॉड्यूलर करते हैं और इसे बहुत अधिक पठनीय बनाते हैं।
कोई टिप्पणी? अग्रिम में धन्यवाद।
दरअसल, Google जेएस सामग्री को अनुक्रमणित करने में बड़े कदम उठा रहा है। उदाहरण के लिए देखें http://googlewebmastercentral.blogspot.com/2007/11/spiders-view-of-web-20.html – nico