请让我问一些问题。我只是混淆了javascript,JQuery和代码隐藏属性的区别。 例如 : ASPX
<tbody id="toggleSup" runat="server">
C#
toggleSup.Visible = false;
---------------------------------------或------- --------------------
C#
CallScript((string)(Session["toggle"]));
private void CallScript(string str)
{
string scriptx = "<SCRIPT LANGUAGE='javascript'>";
scriptx += "toggle('" + str + "');";
scriptx += "</script>";
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "scriptx", scriptx, false);
}
脚本
function toggle(para1) {
if (para1 == 0) {
$('#toggleSup').hide();
}
else {
$('#togglePO').hide();
}
}
对于这两个不同的东西,大多数开发人员都使用脚本。为什么?实际上C#代码只有一行。不同的是,如果我使用脚本,不需要使用runat =“server”,但如果我使用后面的代码,则需要使用runat =“server”。所以我认为可能肯定有优势。如果可能,请解释一下......
由于
答案 0 :(得分:2)
如果你在C#中说toggleSup.Visible = false;
,那么toggleSup甚至不会被渲染到DOM。这意味着它根本不在页面上。如果你想通过页面上的某个动作使该元素可见,那么你必须往返服务器并重新渲染页面的所有(回发)或部分(ajax)。
或者,如果您允许从JavaScript(在这种情况下为jQuery)操纵toggleSub
控件,那么它就是DOM的一部分,可以响应页面上的其他事件而采取行动。主要是,这意味着客户端浏览器可以在不向服务器请求更多HTML的情况下执行操作。
因此,C#方法看起来更简单,但如果您需要丰富的客户端体验,jQuery方法会更灵活。
答案 1 :(得分:1)
使用“脚本”时,浏览器执行工作。使用runat服务器,浏览器必须获取/发布HTTP请求或对服务器执行“AJAX”。
使用“脚本”要快得多,并且更容易维护状态。
答案 2 :(得分:1)
简单来说,Java Script和JQuery代码在客户端浏览器上运行,而C#代码在服务器上运行。