前端一下获取所有数据怎么实现分页

前端一下获取所有数据怎么实现分页,第1张

grid的分页功能本身就是对数据库数据分页后的一个数据显示,并可以执行翻页查询其他页的信息。全部信息则只需要将limit参数设置为数据总条数,pagesize也设置为数据行数。grid中不设置分页组件是可以直接显示全部信息,url中不设置limit和start参数。注:数据量太多时不宜全部显示

主要就是ajax获取数据,当然也可以通过websocket获取数据。其中ajax是获取数据最主要的方式,后台写好的接口,前端通过发送请求,来获取后台返回的数据,然后通过js解析,渲染到页面上。websocket也可以获取数据,后台服务器可以推送消息给前端,前端通过websocket的onmessage回调函数来接收后端发送的数据。

react 本来就可以通过数据来对页面进行更新渲染。

我写了一个例子,你可以看下。我使用setInterval来模拟了数据的更新。

网页链接

import React, { Component } from 'react';

import { render } from 'react-dom';

import Hello from '/Hello';

import '/stylecss';

class Test extends Component {

render() {

 return (

    <div>{thispropsdata}</div>

    )

 }

}

class App extends Component {

    constructor() {

        super();

        thisdata = 1;

        thisstate = {

            name: 'React'

        };

    }

    componentDidMount() {

        setInterval(() => {

        thissetState({ data: thisdata++ })

        }, 2000)

    }

    render() {

        return (

            <div>

                <Hello name={thisstatename} />

            <p>

                Start editing to see some magic happen :)

            </p>

                <Test data={thisstatedata} />

            </div>

        );

    }

}

render(<App />, documentgetElementById('root'));

                               

客户的数据查看主要看flaskrequest这个变量,数据大概存在requestdata中, 可以这样实现。

from flask import Flask, request, current_app

app = Flask(__name__)

@approute('/getUserList', methods=['GET', 'POST'])

def getUserList():

    current_appgetUserList_data = requestdata

    return 'ok'

@approute('/getUserList_debug', methods=['GET', 'POST'])

def getUserList_debug():

    return current_appgetUserList_data

if __name__ == '__main__':

    apprun(debug=True)

当app需要h5页面的时候,作为前端开发的我们不管是用原声js还是使用框架Vue、React,我们都只是给app提供一个页面而已。

一、当app只需要h5做展示的时候,我们就是写一个页面给他们就行了,非常容易。(注意做好兼容)

二、当app需要捕获h5获取的数据的时候,也很容易

      例如:支付页面是h5

                支付方式有三种:1、微信  ;2、支付宝;3:分期付款;

微信、支付宝需要调取原声app,分期是h5 *** 作;

这个时候我们就在确认支付的以后在window上绑上payType就行了,app可以获取window;

三、当h5需要app数据的时候,最简单的方式就是app通过webView把h5需要的数据埋在cookie中;

但h5获取数据的时候直接在cookie中取就行了

export function getCookie(name) {

  const reg = new RegExp(`(^| )${name}=([^;])(;|$)`);

  const arr = documentcookiematch(reg);

   if (arr) {

        return arr[2];

     }

     return null;

 }

当iOS和Android方式不同意的时候我们需要判断系统;

const u = navigatoruserAgent;

         app = navigatorappVersion;

         var isAndroid = uindexOf('Android') > -1 || uindexOf('Linux') > -1; //android终端或者uc浏览器

        const isiOS = !!umatch(/\(i[^;]+;( U;) CPU+Mac OS X/); // ios终端

根据不同的系统各自处理;

移动互联网的迅猛发展让移动APP呈现出爆发之势,这两年更是移动开发程序员的春天。

今天的互联网上充斥着产品与技术的撕逼。也许你会问产品经理到底要不要懂技术?由此引申出,产品经理到底要不要懂设计?产品经理到底要不要懂运营?产品经理到底要不要懂市场?产品经理到底要不要懂业务?这所有问题的来源都是大家对于产品经理的工作认识不一致。

每个人心中都有一个产品经理的定义,产品经理在技术方面更多的是去统筹和规划。不是画画图写写文档就可以了。这里面更多的需要的是对逻辑的梳理和拆分。

例如很简单的一个app内嵌发红包的活动,产品经理需要确定整个活动的流程。从用户进入页面的那一瞬间就应该被产品经理掌控。他的每一个步骤,每一个 *** 作会带来什么结果,有哪些变量会导致活动进程失败,这些都要产品去考虑。等到活动逻辑和过程全部梳理完成,下面就要进行拆分了。还是以发红包为例,红包中金额是客户端写死还是服务端进行计算,红包领取资格需要服务端返回几种结果,每种结果对应客户端的提示是什么,用户领取红包以后服务端需要记录那些信息(帐号,uid,领取时间,金额,是否使用等),客户端哪些地方需要加入计数器进行数据统计。总结起来其实就是,产品经理需要根据开发的每一个环节,将所有内容分类整理,并分发给不同部分的开发进行研发。最后,还需要给测试准备好check list,当测试按照check list测试完成以后,才可以上线。

以上种种都需要产品对前端如何显示后端数据有一个清晰的认识才能规划好数据如何展示。是APP写死呢还是后台返回,在用户任务进行的时候有哪些可能case。只有搞清楚这些,产品才能在实际的开发中掌握好整个项目的流程与进展,才能不被开发给糊弄。

简单的说,前端仅仅将后端返回的数据展示在页面上,不做过多的逻辑处理。前端需要关心的是,数据如何更好的展示出来,页面效果如何做出来,以及其性能问题。

而后端就是负责对这些数据进行处理,提供给前端展示。

前端一般有H5、android、ios等多端界面。数据不要轻易写死在前端里面,不然到时候三端都要修改,费时费力。而将这些变化多数据让后端进行处理,前端将这个数据取出来显示出来就行了。

举个例子吧,下图是一个美团app首页团购的展示效果

上方美食等8个icon一般为固定展示栏目,非特殊情况不会修改。那么前端一般是写死在app中,等到需要更新的时候更新app即可。

而下方猜你喜欢是一个列表,该列表数据经常变化,数据写在服务端维护,app取出数据进行展示即可。

首先,前段对页面的展示是分两步走的。

第一、在本地绘制好界面,当然此时未连api会填充一些假数据,或写一些默认值。

第二、连api进行数据获取,将数据填充进界面。

既然如此,咱们简单看下前端拿到的数据到底长什么样的吧。

现在前端获取到的数据基本是json数据。

不需要特别懂里面每一个的含义,只需要知道,前端通过"title"这个键名(key)就可以拿到"合辑护甲"这个值(value)。 "title": "合辑护甲" 这一整个就是俗称的一个字段。通过该字段前端就可以获取到列表的标题了。当然这个列表只是简单的展示用,还有诸如地址、优惠信息、已售份额等信息没有提供,这就是缺少字段的情况。

前后端就是通过这样的一个定义获取/传递数据的。

考虑到后期拓展、需求变更等,一般来说,涉及到计算的、可能有变动的,一律不要让前端来弄。

还是刚才那个例子,在刚才那个列表中有一个“立减5元”的橙**tag。

这个tag信息,如果考虑不充分,比如说,后端只提供一个数字5,然后前端在其页面写死“立减x元”,x为填入后端提供的数字,颜色固定为橙**。这个如果需求不修改还好,如果后期需要新增一个“满20减5元”的红色tag不傻眼了吗?

到时候只能通过升级app来解决,而且不升级的老用户将永远看不到这个红色的tag。

所以说,考虑到程序的可复用和拓展性,需要产品将后期可能新增或变更的需求考虑好,和前后端进行沟通,让前后端设计好实现,尽量降低程序的耦合和硬编码。这才能使一个产品更加健壮以及让苦逼的程序猿少加班的关键。

那么刚才那个tag的需求如何设计才合理呢?

首先是tag显示文字,全权由后端提供,可以是多个字段,由前端进行拼接。然后是tag的颜色,提供几种样式让前端判断是一种可行的办法,但是直接提供tag的色值给前端的这种方式无疑给前端展示增加了无限的可能。

是不是也要增加一个tag形状的字段呢?

俗话说,过犹不及。tag形状这种东西真的很少变更,字段太多无疑会增加开发的时间成本,而且会让人有一种舍本逐末之感。

前端获取到后端数据后,如果前端不主动刷新重新请求数据的话,这个页面的数据在该页面销毁前会一直保持不变。

如何理解?

首先,第一次进入一个页面,该页面数据为空或默认数据。此时前端会链接api请求数据。数据请求完成后,填充进页面。那么本次联网请求就完成了,在前端不进行二次数据请求之前,该页面会一直保持本次请求的数据。也就是说,就算服务端修改了数据,前端此时是不能事实的进行更新的,因为我前端不知道你数据更新了。

那么在这个需要实时更新页面数据的时候和前端讲这种需求会被前端直接回绝:“做不了”。这个时候产品咋办,怪怪妥协?最后背锅的还是自己,而且自己也不知道是真做不了还是假做不了。

实时刷新也不是不能做,只是做的成本略高,需要和后端进行配合,像微信聊天一样和后端进行长连接(socket),这样服务端数据变更前端就知道数据变更了。

当然如果稍懂页面刷新机制的话,可以要求前端在适当的时机进行页面刷新,如在页面可见的时候进行刷新,这样用户每次看到的都是最新的数据。也可以让用户主动刷新,如新增刷新功能。

产品懂技术这件事情,不仅会降低和开发同学沟通时的难度和被歧视风险,还会提升在面对开发同学意见时的判断力,会降低被技术团队忽悠的几率。同时,在需要向上级解释技术原因导致变更的情况下,也会有助于说服老板。

“闻道有先后,术业有专攻”,要相信自己所接触的开发团队是专业的,靠谱的,相信开发团队为实现需求所做出的技术方案是合理的,最优的。如果有质疑,可以加深沟通,以合适的方式提出自己的质疑。这里要补充一句的是,这个信任过程是需要建立的,也是会根据团队的表现不断变化的;同理,其实团队对于产品经理的信任度也是一样的情况。

吐槽是没有意义的,关键还是要解决问题。如果觉得产品经理不靠谱,那么有没有进行过深入的沟通?如果觉得开发不好沟通,那么有没有进行过了解,不好沟通的原因在哪里?如果当事人本身确实不可沟通,那么有没有考虑和对方的老板沟通,或者通过自己的老板如实反映情况?吐槽是最容易的,解决问题反而会很难。

前端开发与后台交互的数据

JSON(JavaScriptObject Notation),这也是一种轻量级的数据传输格式,就是用一堆中括号把数据组织起来。

XML,但是我们项目中用的最多的就是JSON数据格式,它的一般形式。

前端开发的后台交互原理

前后端会大概说一下接口地址,前端请求的参数,后端返回的参数,然后大家就开始写,写的差不多的时候,大家调一下接口看一下返回的数据,没问题就可以了。

以上就是关于前端一下获取所有数据怎么实现分页全部的内容,包括:前端一下获取所有数据怎么实现分页、网页端数据获取有哪些方式呢、react 点击下载,后台接到请求,在列表里添加数据,前端获取后台数据实现实时更新等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9602430.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存