zoukankan      html  css  js  c++  java
  • 如果添加1条数据会等待10秒,你愿意等吗

     首先说明,这个问题出于自己写的一个小demo,很简单的数据添加操作,起初就是添加一条数据,成功之后刷新页面。后面觉得,刷新页面体验不好,就改成成功之后异步加载数据了,界面体验好了一些。

    但是突然的就在想,动态追加的数据其实填写表单的时候就已经有了,等待成功的这个过程和我想要追加到元素其实关系并不是很大,并不需要等它成功之后给我返回数据我才能追加元素,之所以等成功只是为了等一个“信号”,表示成功加入到库里了。

    那么,我进而就在想, 我们是不是可以不用等待成功之后再加载数据,直接填写表单,点击确定后就将数据动态追加到列表,异步请求成功后不做操作(给提示也可以),如果是失败就必须提示。

    其实我觉得是可以的,虽然这种方式有一些限制。

    先附上图:

     ---------------------------------------------------------------------------------------------

     ---------------------------------------------------------------------------------------------

     重点回答以下几个问题,

    1. 这个小demo其实就是加一条数据,没有必要等成功之后再追加元素,点击按钮后就可以追加,时间、用户等信息可以不通过后台返回,JS可以去取当前时间(可以适当忽略JS时间和后台真正请求时的时间差),用户名可以界面上取到,内容就是文本框了,完全可以动态追加到下面的容器中,可能会问如果添加失败了怎么办(这是这里要说的重点问题),个人觉得,添加失败的原因有可能是程序逻辑错误、或者服务器突然跪了、或者网络不好等因素,但综合着看添加失败的几率是很小的,我们没太大必要因为这些因素必须等待成功后才追加上去,一是程序的性能不好一定得解决,不能因为这个做“预判断”。二是这种概率小,如果这个添加需要等待10秒(这里理论上不可能,但如果是一个复杂的添加业务就有可能),那我觉得与其等待10秒为何不优先加载出来,可能添加失败后追加的东西因为没存进去也不会显示,但这种体验应该比等待10秒体验好,因为每一件事情都等成功之后才做的话,这中间可能会有一些我们不需要等待的无用时间。所以,想问,如果一个添加要等10秒,你愿意等吗。

    2. 业务不同,优化程序有别的方式。这里其实主要是想探讨一下做法问题,具体问题具体分析,在软件编码的过程中,是否可以用这种方式,在数据可以从界面取的情况下,不等成功,直接操作,失败给予提示,操作过的DOM因为没有数据支撑刷新页面后自然会撤销。

    突然想到的一点东西,有很多的局限性。

  • 相关阅读:
    LeetCode Path Sum II
    LeetCode Longest Palindromic Substring
    LeetCode Populating Next Right Pointers in Each Node II
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Binary Tree Maximum Path Sum
    LeetCode Find Peak Element
    LeetCode Maximum Product Subarray
    LeetCode Intersection of Two Linked Lists
    一天一个设计模式(1)——工厂模式
    PHP迭代器 Iterator
  • 原文地址:https://www.cnblogs.com/sunshine-wy/p/5865104.html
Copyright © 2011-2022 走看看