脚本与...之间的差异代码背后?

时间:2011-07-12 02:05:51

标签: c# javascript jquery asp.net

请让我问一些问题。我只是混淆了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”。所以我认为可能肯定有优势。如果可能,请解释一下......

由于

3 个答案:

答案 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#代码在服务器上运行。