form表单提交和ajax提交的使用场景和差别

2021-07-25 22:55

阅读:853

标签:false   als   餐厅   刷新   status   异步   sele   过程   曝光   

共同点

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="width: 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="width: 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="width: 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表单的属性中有校验的字段,用户只需要添加正则表达式的校验规则

 

form表单提交和ajax提交的使用场景和差别

标签:false   als   餐厅   刷新   status   异步   sele   过程   曝光   

原文地址:https://www.cnblogs.com/liazhimao/p/14948710.html


评论


亲,登录后才可以留言!