Javascript 富客户机与JQuery等交互-最稳健的方法?

Javascript 富客户机与JQuery等交互-最稳健的方法?,javascript,jquery,asp.net,ajax,telerik,Javascript,Jquery,Asp.net,Ajax,Telerik,任何关于最强大的工具的视图,以实现一个相当“丰富的客户端”(即图表/控件无需回发即可更新彼此的内容)。我经常使用Telerik,但是当您想将它配置为ajax调用和控件在客户端相互更新时,它的标记量似乎非常大 其他选项似乎是jquery中的$ajax命令、标准UpdatePanel或混合方法。可维护性/简单性很重要。不过性能也是如此——如果简单的JSON可以传递而不是ViewState等,那就更好了 谢谢 标记 编辑: 谢谢你的回复。我的问题的本质更多的是关于“架构”。从某种意义上讲,就是从客户端

任何关于最强大的工具的视图,以实现一个相当“丰富的客户端”(即图表/控件无需回发即可更新彼此的内容)。我经常使用Telerik,但是当您想将它配置为ajax调用和控件在客户端相互更新时,它的标记量似乎非常大

其他选项似乎是jquery中的$ajax命令、标准UpdatePanel或混合方法。可维护性/简单性很重要。不过性能也是如此——如果简单的JSON可以传递而不是ViewState等,那就更好了

谢谢

标记

编辑:
谢谢你的回复。我的问题的本质更多的是关于“架构”。从某种意义上讲,就是从客户端事件(即,当下拉一个更改时,使用客户端事件刷新其他事件)或使用服务器端事件将所有事件“垂直”在一起,然后从该端呈现任何内联javascript。希望这能澄清一点。如果你想要免费的东西,谢谢你

可能是最好的免费jQuery图表。它的卓越之处在于它能做什么

我还使用了很多UI需求,因为它包含了我在我编写的每个站点中使用的大多数控件

jQuery有一个很好的AJAX实现,若您将它和UX结合使用,那个么您的UX将非常流畅

编辑

jQuery

$.get("/userControls/PrintRunPriceCalculator.ashx?pages=" + pages + "&quantity=" + quantity, {}, function (data) {
    if (data != "")
        $(".TotalAmountFigure").html(data);
});
阿什克斯


您应该通过jQuery查看backbone.js甚至sproutcore之类的内容


编辑:是的,你要找的正是Backbone.js的功能

参见我提到的MVC框架。您可以使用jQuery发回控制器,并返回所谓的PartialView和页面的更新部分。非常整洁,快速,易于编码谢谢。大约6个月前,我做了一次MVC测试,但它与我的大脑(或我经常使用的Telerik组件)融合不好。我一直听说这件事,但可能需要重新审视MVC。我似乎花了更多的时间来了解新的框架,而不是实际开发东西!欢迎来到微软生态系统,我想:)谢谢你。是的,highcharts是我脚上的一根刺,它把我引向了这个问题。我之前所做的大部分工作都是服务器/代码隐藏,但Highcharts将您带入客户端的过程非常突然。接下来的问题是,我是否应该在javascript中的其他下拉列表/etc中设置逻辑,并调用“定制”webservice函数来进行更新/数据更改。或者这只是重新发明轮子,我应该主要停留在服务器端,除了与highcharts直接相关的部分?一个难题!是的,这是一个相当棘手的问题。就我个人而言,如果使用asp.net,我会尽我所能将所有内容ajax到ashx,如果使用mvc,我会使用控制器。只有更新需要更新的内容对我来说才有意义。谢谢,我得去看看ashx的。到目前为止,我发现的最简单的方法是创建一个ASMXWebService,并用[WebMethod]属性装饰这些方法。你认为ashx是更好的方式吗?不是更好的方式,只是另一种方式。请阅读我的编辑,了解我是如何做到的。非常感谢!我注意到调用中没有提到ProcessRequest方法-它只是默认为存在的单个方法吗?感谢到Sproutcore的链接,我没有注意到这个@Wes,不确定主干网是否可以替代jQuery。这是从他们的网站。“它取代了jQuery吗?不。它们在功能上几乎没有重叠,在范围上是互补的。”啊哈,是的,wtf,只是想帮助人们
public class PrintRunPriceCalculator : IHttpHandler, IReadOnlySessionState, IBookPrintDetail
{

    public void ProcessRequest(HttpContext context)
    {
        int quantity;
        int pages;

        try
        {
            quantity = int.Parse(context.Request.QueryString["quantity"]);
            pages = int.Parse(context.Request.QueryString["pages"]);
        }catch{ return; }

        BookPrintDetailPresenter presenter = new BookPrintDetailPresenter(this);
        context.Response.Write(presenter.GetQuote(quantity, pages));
    }