热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一种标准的AJAX提交方式

webmatrix的确是个好东西,今后找开源项目不用在上codeplex什么的了,直接从WM上Down就成,并且连设置都是自动的ÿ

webmatrix的确是个好东西,今后找开源项目不用在上codeplex什么的了,直接从WM上Down就成,并且连设置都是自动的,微爽

下面要说的就是BlogEngine这个项目中的一个小小的亮点

在webform开发中,我们经常会用到AJAX向后台提交数据,在我的公司,通常是提交到本页的后台去处理,或者是webservice,这两种方法都很简便,但是总显得略混乱。

今天在看BlogEngine的时候,发现它是这样处理的

首先用一个AjaxHelper.aspx页面处理全部的ajax请求,这个页面的后台全部是:

[WebMethod]
        public static JsonResponse SavePage(
            string id,
            string content,
            string title,
            string description,
            string keywords,
            string slug,
            bool isFrontPage,
            bool showInList,
            bool isPublished,
            string parent)
        {
            WebUtils.CheckRightsForAdminPagesPages(false);

            var response = new JsonResponse { Success = false };
            var settings = BlogSettings.Instance;

            if (string.IsNullOrEmpty(id) && !Security.IsAuthorizedTo(Rights.CreateNewPages))
            {
                response.Message = "Not authorized to create new Pages.";
                return response;
            }

….

的WebMethod,这样其实和webservice没有本质的区别,只是比webservice更加清爽

再看看前台是如何处理的:

var dto = {
                       "id": Querystring('id'),
                       "content": content,
                       "title": title,
                       "desc": desc,
                       "slug": slug,
                       "tags": tags,
                       "author": author,
                       "isPublished": isPublished,
                       "hasCommentsEnabled": hasCommentsEnabled,
                       "cats": cats,
                       "date": date,
                       "time": time
                   };

                   //alert(JSON.stringify(dto));

                   $.ajax({
                       url: "../AjaxHelper.aspx/SavePost",
                       type: "POST",
                       dataType: "json",
                       contentType: "application/json; charset=utf-8",
                       data: JSON.stringify(dto),
                       success: function (result) {
                           var rt = result.d;
                           if (rt.Success) {
                               if (rt.Data) {
                                   window.location.href = rt.Data;
                               } else {
                                   ShowStatus("success", rt.Message);
                               }
                           }
                           else
                               ShowStatus("warning", rt.Message);
                       }
                   });

一个标准化的AJAX提交处理机制,要比随意的滥用好的多。但是很多时候,信奉快捷的中国的开发人员总是滥用,并且不知反省

转:https://www.cnblogs.com/yriyr/archive/2011/02/08/1949860.html



推荐阅读
  • 在Unity中进行3D建模的全面指南,详细介绍了市场上三种主要的3D建模工具:Blender 3D、Maya和3ds Max。每种工具的特点、优势及其在Unity开发中的应用将被深入探讨,帮助开发者选择最适合自己的建模软件。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • Django框架下的对象关系映射(ORM)详解
    在Django框架中,对象关系映射(ORM)技术是解决面向对象编程与关系型数据库之间不兼容问题的关键工具。通过将数据库表结构映射到Python类,ORM使得开发者能够以面向对象的方式操作数据库,从而简化了数据访问和管理的复杂性。这种技术不仅提高了代码的可读性和可维护性,还增强了应用程序的灵活性和扩展性。 ... [详细]
  • Django框架进阶教程:掌握Ajax请求的基础知识与应用技巧
    本教程深入探讨了Django框架中Ajax请求的核心概念与实用技巧,帮助开发者掌握异步数据交互的方法,提升Web应用的响应速度和用户体验。通过实例解析,详细介绍了如何在Django项目中高效实现Ajax请求,涵盖从基础配置到复杂场景的应用。 ... [详细]
  • Understanding the Distinction Between decodeURIComponent and Its Encoding Counterpart
    本文探讨了 JavaScript 中 `decodeURIComponent` 和其编码对应函数之间的区别。通过详细分析这两个函数的功能和应用场景,帮助开发者更好地理解和使用它们,避免常见的编码和解码错误。 ... [详细]
  • 深入解析 Django 中用户模型的自定义方法与技巧 ... [详细]
  • 本文深入探讨了数据库性能优化与管理策略,通过实例分析和理论研究,详细阐述了如何有效提升数据库系统的响应速度和处理能力。文章首先介绍了数据库性能优化的基本原则和常用技术,包括索引优化、查询优化和存储管理等。接着,结合实际应用场景,讨论了如何利用容器化技术(如Docker)来部署和管理数据库,以提高系统的可扩展性和稳定性。最后,文章还提供了具体的配置示例和最佳实践,帮助读者在实际工作中更好地应用这些策略。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 在多线程环境中,Asio 的线程安全特性是一个重要议题。通常情况下,不同对象之间的并发操作是安全的,但对同一对象的并发访问则可能导致数据竞争和不一致。不过,Asio 提供了一些机制,如 `is_service` 类型,以确保某些服务类对象在多线程环境下的安全并发使用。这些机制通过内部同步机制来防止竞态条件,从而提高程序的可靠性和稳定性。 ... [详细]
  • 尽管存在唯一列,仍显示“当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用”的消息。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
  • 如何在Windows 10系统中高效切换和设置语言环境? ... [详细]
  • Spring注解开发指南:@Resource与@Component详解 ... [详细]
  • 如何在Android应用中设计和实现专业的启动欢迎界面(Splash Screen)
    在Android应用开发中,设计与实现一个专业的启动欢迎界面(Splash Screen)至关重要。尽管Android设计指南对使用Splash Screen的态度存在争议,但一个精心设计的启动界面不仅能提升用户体验,还能增强品牌识别度。本文将探讨如何在遵循最佳实践的同时,通过技术手段实现既美观又高效的启动欢迎界面,包括加载动画、过渡效果以及性能优化等方面。 ... [详细]
author-avatar
饰间人爱642_370
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有