可笑的技术名词OPOA(One Page One Application)

SAP 基于VUE的BSP OO单页移动端Web App开发 前言 之前的一篇文章,通过传统的Page with Flow Logic形式去实现了基于Vue的One Page Application。这种做法其实存在一些设计上的问题,前端页面交互层还好说,但后端服务层明显不符合RESTful设计风格,一个API居然还有View的代码?(二当家:帮主哇,我们不用OO,光去看人家的Page with Flow Logic,被同行知道了会笑我们变态的)咳咳,有鉴... 阅读详情

原文来自: http://ramonblog.cloudfoundry.com/blog/4ffc59354e1ef7b729000001


无聊查看了一下猎头发的职位列表,发现一知名电商在杭州招聘一个年薪40w+的前端工程师,这个待遇还是渴望的。再看列出的要求里面包含一个OPOA(One Page One Application),没有见过,但是我猜得到应该是指RIA(Rich Internet Application)。具体Google之,发现网上相关的内容不多,英文的更是没有。看了一下置顶的文章,One Page, One Application,全中文的。最相关的英文文章可能算Wiki上的Single-page application。

大概看了一下那篇中文的,其实没有什么新东西,RIA本身就是这样的,不知道为什么自己要造一个新的名词,害得我咯噔一下,以为自己又落伍了。不过可喜的是,咱中国人也在IT领域造了一个新名词。我是不感兴趣的,更多的是关注本质。不过借此机会倒是可以谈一下我曾经参加过的一个OPOA产品,其实还是非常牛逼的。

  1. JS框架

    主要用的ExtJS。提供漂亮的面向对象框架;提供完整的UI控件库,包括漂亮的基于Canvas和SVG的图形,易于使用;提供完整清晰的UI控件声明周期,易于扩展;提供丰富的辅助类库,包括与服务器交互的Reader和Writer,生成HTML的template,各种工具方法。总之用起来很是顺手,尤其是初学者,很容易适应,也很容完成功能。但是,要想用得好,还是要下功夫的,需要仔细理解其控件生命周期,理解其布局,理解它的样式,否则很可能在解决复杂任务时,写出性能非常差的代码。

    为了解决JS的依赖用了RequireJS,应该比ExtJS4自带的依赖库要好,因为ExtJS4似乎仅可以解决自身类的依赖,而RequireJS则是解决所有js的依赖。

  2. CSS框架

    通常RIA的CSS都会复杂的,尤其时系统复杂的时候,考虑跨浏览器,如恶心的IE。所以我们用来Compass,基于Sass的一个CSS框架。Compass实际上是一个CSS的编译器,输入是Sass风格的类Css语言,编译输出就是Css。当然Compass基于Sass的功能提供了很多函数,这样可以很容易做到跨浏览器,譬如圆角,按列布局等等。

  3. 解决浏览器前进、后退

    这是一个小细节问题,但是很重要,通常是借助浏览器地址栏中URL的hash fragment identifier,如http://localhost/detail#name=ramon,其中#以后的都作为hash id。浏览器地址栏的url主体不变,只是变化hash fragment identifier的话,浏览器是不会重新加载页面的,但是这个时候我们可以从location.href.hash中获取到hash指,这样可以得到相应的参数以修改页面展示的内容,同时把整个url存入浏览器的history里面,这样点击前进或后退的时候,地址栏会设置为相应的url,而我们通过hash知道要显示的内容。

  4. 提供了一个JS的数据模型框架 这个是最牛逼的地方。在服务器端我们定义了一堆用XML来表示的数据类型,用它来描述各种业务对象,譬如Person。这些XML在系统初始化的时候都会加载到客户端,并且反序列化为JS对象,当然JS对象也很容易序列化为XML,从而作为请求的内容发到服务器去。所有这些对象又直接对应这服务器端的数据持久化对象,如Person对象就可能有save, update, insert, delete方法。这样很容易在客户端直接调用Person.delete来请求服务器删除一个对象。当然服务器需要实现一套Rest service以支持这些请求。

Amazon RDS MySql入门指南 原文: http://ramonblog.cloudfoundry.com/blog/4fd831002de195990a000001 AWS提供的RDS(Relational Database Service)是AWS的数据库解决方案之一,它是基于关系数据库的,支持MySql,Oracle和MS SqlServer。这里只简单介绍以下Mysql的应用,更多信息请查看RDS官方文 阅读详情

相关推荐

onepageprojectmanager中文模板

OPPM中文模板,只有一套中文模板,收集中

web单页面应用与多页面应用区别

单页面应用(SinglePage Web Application,SPA) 只有一张Web页面的应用,是一种从Web服务器加载的富客户端,单页面跳转仅刷新局部资源 ,公共资源(js、css等)仅需加载一次,常用于PC端官网、购物等网站。 多页面应用(MultiPage Application,MPA) 多页面跳转刷新所有资源,每个公共资源(js、css等)需选择性重新加载,常用于 app 或 客户端等。 两者区别 类型 单页面应用(SinglePage Web Application,SPA

Jeremy_Lin_PC的博客 663

Windows下Fortran调用CGNS库的完整踩坑实录:从HDF5、CMake到VS2019+IVF2020的保姆级配置

本文详细记录了在Windows环境下使用Fortran调用CGNS库的完整配置过程,涵盖HDF5安装、CMake配置、VS2019与IVF2020集成等关键步骤。通过实战经验分享,帮助开发者解决常见编译错误和链接问题,实现高效的Fortran与CGNS库集成。

weixin_28707739的博客 349

转载 “one page, one application”

one page, one application作者:michael chen前言:这篇文章本应该在一个月前就写出来,但是因为种种原因,腹稿打了数十遍,现在才有时间提笔来写。文中某些观点相对目前的web应用比较前卫,阅读者应当根据自己应用的具体情况,对此文进行批判的阅读。by michael chen一 定义one page, one application(后面缩写为opoa,或者1p1a),

tsimgsong 1511

AD9371 官方例程构建及单音信号收发

项目构建基本流程和AD9361差不多,由于官方使用的ZCU102,记录下移植遇到的一些问题最终接收到正确的正弦波Errors: 0Errors: 0Errors: 0Errors: 0AD9361。

weixin_44630490的博客 2973

2024银行科技岗笔试通关秘籍:从资料准备到实战技巧

本文系统解析了2024年银行科技岗笔试的考察内容与备考策略。文章指出,笔试是一场涵盖通用能力测试、计算机专业基础、金融科技知识和英语性格测试的复合型考试,并重点提供了数据结构与算法、计算机网络、数据库等高频考点的深度解析与实战突破技巧,帮助考生高效准备,顺利通关。

weixin_29243279的博客 121

one page one application

     也开发了很久的web系统,总是进行着一些重复性的劳动。被网页的杂乱代码&繁琐的请求响应搞的头混脑涨,我想这也是为什么网站开发效率低下&用户体验性差的原因吧,用功没用在刀刃上!     网页有其“零部署”&“界面美观”等优点,这些是不应该摈弃的,重要的是减少频繁的提交&响应,以节省界面代码的冗余量,专注于功能的实现。One page One application,这条柬语只值得我们去参照

grazeCoder 1377

【鸿蒙实战开发】HarmonyOS申请调试签名证书过程

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

HarmonyOS_002的博客 3561

One Page,One Application

 一 定义One Page, One Application(后面缩写为OPOA,或者1P1A), 含义很简单:一个页面就是一个应用。在众多的基于Web的MIS系统中,没有人关心页面的组织形式;大多数稍微复杂的MIS系统,都采用分祯(Frame)的方式来组织页面,这样,在进行业务操作的时候,url的变化表现在一个框架页面内,从浏览器的地址看起来,只有一个地址;更有甚者,

chenzijun20082008的专栏 2318

从零开始:YOLOv8车牌检测模型训练全流程实战

本文详细介绍了从零开始训练YOLOv8车牌检测模型的全流程实战指南。内容涵盖环境搭建、数据集收集与标注、模型配置与训练、评估测试及高级优化技巧。通过使用预训练模型和迁移学习,开发者可以高效构建精准的车牌检测系统,并掌握模型导出与部署的关键步骤。

weixin_29061041的博客 335

SpyGlass CDC实战:如何用sgdc约束文件解决跨时钟域报错(附常见错误排查)

本文详细介绍了如何使用SpyGlass CDC工具链中的sgdc约束文件解决跨时钟域(CDC)报错问题。从基础约束文件架构到复杂场景调试,涵盖了时钟域定义、复位信号约束、Waiver策略等关键技巧,并附有常见错误排查方法,帮助工程师高效处理CDC验证挑战。

loss4bartender的博客 1148

one page application开发原则

     1 因为是单页面application,页面无刷新,意味着页面中所有的变量都不会变化,因此当变量变化后若下步执行其它预料外的动作:比如,点击修改,弹出修改框后。又点击其它的便签,则该变量因为值不变,修改框会持续显示。全部用angularjs控制即可,当跳转控制器后会销毁,后重新生成控制器       2 非angularjs的控制慎用,否则会各种未预期的错误,因为脱离了控制器的管理...

350

比较器和运算放大器-2

今天继续了解输入阻抗问题,观察下图:首先考虑在我们没有接运放时,A点输出电压为6V,当接入如图所示的阻抗时电压还是6V吗?共模电阻和红框内对地电阻并联,阻值变小,相当于5k,通过计算可以求得A点电压变为4V,这样A的值发生了改变,试想一下这样的信号接入到运放的两端是不是相当于比较的两端信号发生了改变,那结果一定会发生偏离。信号源一般内阻是不确定的,一般也不是很小,如果不想改变输入阻抗,那唯一的办法就是改变运放的内阻了,比如内阻改为100K,1M等,越大越好,是不是A点电压就会无限接近6V。

weixin_42855218的博客 1311

opoa

One Page, One Application缩写为OPOA 含义很简单:一个页面就是一个应用。在众多的基于Web的MIS系统中,没有人关心页面的组织形式;大多数稍微复杂的MIS系统,都采用分祯 (Frame)的方式来组织页面,这样,在进行业务操作的时候,url的变化表现在一个框架页面内,从浏览器的地址看起来,只有一个地址;更有甚者,一些应用干脆弹出一个去掉了浏览器菜单、工具条、地址栏、状态栏

水滴 723

我的GIT练习ONE

Git 是一个分布式版本控制及源代码管理工具;Git 可以为你的项目保存若干快照,以此来对整个项目进行版本管理每一次的练习,都是对自身知识的巩固,以及对自身知识的一个测试。

是个非常热爱生活、乐观、奋斗、努力的逗比青年 8869

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

多页应用与单页应用(SinglePageApplication)对比

                       多页应用                           单页应用 一个项目中有多个完整的的HTML文件 一个项目中只有一个完整的HTML页面(index.html) 可以使用超链接、js实现页面间的跳转 可以使用改进后的超链接、js实现模板页面间的切换 传统的页面跳转是同步请求:在服务...

darkcity_X的博客 4813

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Single Page Application是什么

今天zq大佬说了一个高大上的名词,emmm感觉差距巨大啊, Single Page Application指一种基于web的应用或者网站, 这种single page在和用户交互的时候当用户点击某个物件或者按键的时候不会跳转到其他的页面. 举个例子, 在知乎里, 如果你点击一个问题或者一个人名的时候, 网页会自动跳转到该页面. 反之, 比如说我们现在有一个基于网页版的计算器应用, 不管你点数字还是

huali_1995的博客 8367

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

vue.js 单页面应用spa (single page application)

vue.js 单页面应用

姜元志的Blog 4935

关于OPOA的问题和对策

对于大多数开发者来说,EXT越来越象一棵毒蘑菇,外表鲜艳,但是却隐藏着巨大的危险,一不小心就陷入性能的 死穴中,导致整体项目的失败! 面对EXT性能的问题,大家提出解决方法中,有一种是避免采用IFRAME,采用one page one application(OPOA)的方式。但是一般的企业应用都会采用TAB页的方式,在同一个页面中同时装载多个应用页面。这时,如果采用OPOA的...

stamen的程序员之路 249

nodejs系列之七——nodejs与mongoDB

原文: http://ramonblog.cloudfoundry.com/blog/4fd4536715d8f0d91e000002 参考其它内容请看本blog中的nodejs系列提纲 更多关于MongoDB的NodeJS驱动内容请参考MongoDB NodeJS Driver 简介 No-SQL的一篇比较详细的中文介绍来自于我自然的博客。而Mongo

秋风吹渭水,落叶满长安 3375

ExtJS Component分析

很多JS开发人员可能都会熟悉JQuery,这是一个非常流行成熟的、免费的、开源JS框架,但是使用过ExtJS的人就少多了。近半年都是用ExtJS,然后大概看了一下JQuery,有了自己的一些新的体会。可以在稍后的博客中分享一下个人对二者的看法。在这里我们仍然侧重于讲解ExtJS,尤其是它比JQuery强大的地方——Component体系。 所有的JS框架似乎起码要包括如下几部分:跨浏览器

秋风吹渭水,落叶满长安 3036

16×16的免费图标SILK

<!--google_ad_client = "pub-1992382271196226";/* 728x90, 创建于 08-3-9 */google_ad_slot = "1653402536";google_ad_width = 728;google_ad_height = 90;//-->今天费了半天劲才找到一些好的16×16图标,尤其恼火的是注

秋风吹渭水,落叶满长安 2643

CoffeeScript快速入门

CoffeeScript快速入门 CoffeeScript是最近比较流行的一个小的编程语言,它有自己的语法(受Python和Ruby影响比较多,个人觉得更象Ruby),其编译器将其编译输出javascript。至于生成的javascript则可以在浏览器运行也可以在服务器端运行(NodeJS)。例如最简单的helloWorld函数(你可以点击这个链接进入CoffeeS

秋风吹渭水,落叶满长安 2244

NodeJs upload files based on Express

更多内容参考系列文章: nodejs系列提纲 作为本blog的需求,上传图片始终是要支持的。但是呢,久久未动,以为麻烦,尽管诸多文章显示非常简单。昨天晚上终于下定决心解决它。果然简单异常,但是在本地测试成功之后发现部署到CloudFoundry却不能正常运行,原来还有小细节没有注意到。下面一一道来。 1. 准备工作 首先你要知道怎么用NodeJs下面的Web框架Express,这

秋风吹渭水,落叶满长安 2138

nodejs系列之八——nodejs与cloudfoundry

原文来自: http://ramonblog.cloudfoundry.com/blog/4fd44b4415d8f0d91e000001 参考其它内容请看本blog中的nodejs系列提纲 简介 CloudFoundry是VMVare提供的一个开源的PaaS(Platform as a Service)云计算平台。其实这种平台即服务的云计算平台并不算新,但是作为开源的

秋风吹渭水,落叶满长安 1628
上一篇: Html5 Canvas挑战你的想象力
下一篇: 如何调试NodeJS
llmlx
博客等级 码龄23年 15粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值