实现方式

目前实现方式也是两种种:
1、传统的MPA应用,首屏内容由后端模板渲染,然后部分动态内容由前端调用Ajax来实现更新。这类网站占网站的大多数,其分离原则是,首屏需要展示的,由后端处理,首屏不需要展示的由前端处理,从某种情况来说,可以降级为全部使用后端渲染。
2、SPA应用,把网站分配成一个或者几个前端页面,把跳转逻辑和呈现问题放在前端,而把数据逻辑等涉密的内容放在后端,通过Ajax进行交互。目前管理系统以及SEO需求不大的WEB APP都是这种模式,某些框架支持使用同构的方式渲染首屏内容,大多也是这种模式。

作者:宗宇
链接:https://www.zhihu.com/question/39403922/answer/81235761
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

时间: 2024-12-11 20:55:42

实现方式的相关文章

angularJs中关于ng-class的三种使用方式说明

在开发中我们通常会遇到一种需求:一个元素在不同的状态需要展现不同的样子. 而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性 这里有三种方法: 第一种:通过数据的双向绑定(不推荐) 第二种:通过对象数组 第三种:通过key/value 下面简单说下这三种: 第一种:通过数据的双向绑定 实现方式: function changeClass(){   $scope.className = "change2"; } <div clas

配置resin web方式部署项目

写在前面,推荐下载resin4.0.47版本.其它版本没有测试 最近打算做一个小项目,然后容器选用了resin.想通过web提交war文件的方式 进行部署,更新代码也方便. 试了resin最新的版本(目前最新版本为4.0.53),提交war文件到webapps下面都是.tmp文件.百度google一通还是没找到解决办法. 看了下公司用的resin版本,选择4.0.47.下载后发现没最新版本的上传问题. 通过web提交war文件方式步骤如下: 步骤一:修改resin.properties.推荐配置

(转)web会话管理方式

阅读目录 1. 基于server端session的管理 2. cookie-based的管理方式 3. token-based的管理方式 4. 安全问题 5. 总结 http是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的.当然它知道是哪个客户端地址发过来的,但是对于我们的应用来说,我们是靠用户来管理,而不是靠客户端.所以对我们的应用而言,它是需要有状态管理的,以便服务端能够准确的知道http请求是哪个用户发起的,从而判断他是否有权限继续这个请求.这

Jenkins 2.60.x 2种发送邮件方式

1.1 默认发邮件的配置方式 1.1.1 系统级别 邮件配置 1.1.2 项目级别 邮件配置 测试构建失败是否会发邮件: 控制台输出:提示已发送邮件给项目配置指定的两个邮箱地址. 1.1.2.1  查看邮箱 1.2 第三方插件 发送邮件的配置方式 1.2.1 系统级别 邮件配置 再次打开系统配置找到如下图的地方配置发送邮件的触发条件. 1.2.1 项目级别 邮件配置 控制台输出(console output): 1.2.1.1  查看邮件 确认第一个邮箱收件人 确认第二个邮箱收件人

maven 坐标获取方式

问题:我们在开发时pom.xml文件中的 <dependencies>     <dependency>         <groupId>org.mybatis</groupId>         <artifactId>mybatis</artifactId>         <version>3.2.5</version>     </dependency> </dependencies

mysql读写分离的三种实现方式

1 程序修改mysql操作类可以参考PHP实现的Mysql读写分离,阿权开始的本项目,以php程序解决此需求.优点:直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配缺点:自己维护更新,增减服务器在代码处理 2 amoeba参考官网:http://amoeba.meidusa.com/优点:直接实现读写分离和负载均衡,不用修改代码,有很灵活的数据解决方案缺点:自己分配账户,和后端数据库权限管理独立,权限处理不够灵活 3 mysql-proxy参考 mysql-proxy

hibernate载入持久化对象的两种方式——get、load

一.get与load对照 在hibernate中get和load方法是依据id取得持久化对象的两种方法.但在实际使用的过程中总会把两者混淆,不知道什么情况下使用get好,什么时候使用load方法效率更高.下边具体说一下get和load的不同,有些时候为了对照也会把find加进来. 1.从返回结果上对照: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null 2.从检索运行机制上对照: get方法和fin

【巨坑】springmvc 输出json格式数据的几种方式!

最近公司项目需要发布一些数据服务,从设计到实现两天就弄完了,心中窃喜之. 结果临近部署时突然发现.....  服务输出的JSON 数据中  date 类型数据输出格式要么是时间戳,要么是  {"date":26,"day":1,"hours":21,"minutes":38,"month":5,"seconds":22,"time":1498484302259,&qu

CSS原生布局方式

前言 网页原生布局的方法其实网上有很多,大概为Flow(流动布局模型).Float(浮动布局模型).Layer(层级布局模型).<!--more--> Flow布局 流动布局模型其实就是默认的网页布局模式.也就是说网页在默认状态下的HTML网页元素都是根据流动模型来分布网页内容的.流动布局将会有两个比较典型的特征,第一,块级元素都会在所处的最近父级容器元素内自上而下按顺序垂直顺延分布,因为在默认状态下,块级元素的宽度都是100%(即父级元素宽度的100%).实际上,块状元素都会以行的形式占据位

mariadb10.xGTID复制方式

常用的master_log_file,master_log_pos复制方式,当主库宕机时会造成数据不一致问题: mariadb10.x默认就是支持GTID的复制方式  1.不支持的参数 gtid-mode=on enforce-gtid-consistency=true 2.修改的参数 slave-parallel-workers参数修改为slave-parallel-threads 3.连接至主服务使用的命令 增加:master_use_gtid= current_pos | slave_po