zoukankan      html  css  js  c++  java
  • form表单提交和ajax提交的使用场景和差别

    共同点

    1、都是发送http请求

    2、安全性都一样,安全性与提交方式无关

    区别

    ajax请求:

    1. 如果表单提交后不需要页面跳转,或者想把跳转的控制权放在前端的话,用ajax提交更方便,这样页面不用刷新,只局部刷新加载速度快,网络带宽占用低,数据也不会闪屏
    2. ajax在提交、请求、接收时,是异步进行的,不影响页面其他部分
    3. ajax提交时,是在后台新建一个请求
    4. ajax必须要用js来实现,存在调试麻烦、浏览器兼容问题、而且不启用js的浏览器,无法完成操作
    5. ajax在提交、请求、接收时,整个过程需要使用程序来对其进行数据处理

    form表单提交:

    举例:

    <el-form ref="form" :model="form" label-width="80px" style=" 500px">
          <el-form-item label="活动名称">
            <el-input v-model="form.name"></el-input>
          </el-form-item>
          <el-form-item label="活动区域">
            <el-select v-model="form.region" placeholder="请选择活动区域">
              <el-option label="区域一" value="shanghai"></el-option>
              <el-option label="区域二" value="beijing"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="活动时间">
            <el-col :span="11">
              <el-date-picker
                type="date"
                placeholder="选择日期"
                v-model="form.date1"
                style=" 100%"
              ></el-date-picker>
            </el-col>
            <el-col class="line" :span="2">-</el-col>
            <el-col :span="11">
              <el-time-picker
                placeholder="选择时间"
                v-model="form.date2"
                style=" 100%"
              ></el-time-picker>
            </el-col>
          </el-form-item>
          <el-form-item label="即时配送">
            <el-switch v-model="form.delivery"></el-switch>
          </el-form-item>
          <el-form-item label="活动性质">
            <el-checkbox-group v-model="form.type">
              <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
              <el-checkbox label="地推活动" name="type"></el-checkbox>
              <el-checkbox label="线下主题活动" name="type"></el-checkbox>
              <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
            </el-checkbox-group>
          </el-form-item>
          <el-form-item label="特殊资源">
            <el-radio-group v-model="form.resource">
              <el-radio label="线上品牌商赞助"></el-radio>
              <el-radio label="线下场地免费"></el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="活动形式">
            <el-input type="textarea" v-model="form.desc"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit">立即创建</el-button>
            <el-button>取消</el-button>
          </el-form-item>
        </el-form>
    data() {
        return {
          form: {
            name: "",
            region: "",
            date1: "",
            date2: "",
            delivery: false,
            type: [],
            resource: "",
            desc: "",
          },
        };
      },
    methods: {
        onSubmit(e) {
          // console.log(this.form);
          e.preventDefault();
          let formData = JSON.stringify(this.form);
          // console.log(formData);
          this.$http.post("", formData).then(function (res) {
            if (res.status === 2000) {
                console.log(111111)
            } else {
                console.log(222222)
     
            }
          });
        },
      },
    1. 如果表单提交以后需要重新跳转页面,或者要将跳转行为放在后端时,用表单提交更合适点,点击触发submit事件,后端控制页面的跳转及数据的传递
    2. form表单提交会新建一个页面,会在控制器和模板之间传递更多参数
    3. form是放弃本页面,然后再请求
    4. form表单提交,是根据表单结构自动完成,不需要代码干预,用submit提交
    5. form表单的属性中有校验的字段,用户只需要添加正则表达式的校验规则
    世界上没有什么偶然,有的只有必然。——壹原侑子
  • 相关阅读:
    用Python完成一个汇率转换器
    鸿蒙如何用JS开发智能手表App
    鸿蒙如何用JS开发智能手表App
    SAP Spartacus SplitViewComponent Migration 的一个具体例子
    SAP Spartacus B2B 页面 Popover Component 的条件显示逻辑
    SAP Spartacus 升级时关于 schematics 的更新
    SAP Spartacus B2B 页面 Disable 按钮的显示原理
    SAP Spartacus B2B 页面 Disable Confirmation 对话框的显示原理
    通过 Feature Level 动态控制 SAP Spartacus 的页面显示
    SAP Commerce Cloud Build Manifest Components
  • 原文地址:https://www.cnblogs.com/liazhimao/p/14948710.html
Copyright © 2011-2022 走看看