_flex前台分页or后台分页

原创
2017/04/11 12:13
阅读数 94

前台分页与后台分页
在写Flex分页组件时,有一点需要考虑,就是分页的方式:前台 or 后台 ?
前台分页与后台分页有所区别的,主要就是从后台获取全部的数据还是部分的数据。
所谓的前台分页,就是由后台方法一次性查出所有的数据,将这些数据返回到前台,由前台在内存中对这些数据进行分页,不需要每次查询都调用后台方法来查数据。
后台分页则是指后台仅返回某个范围内的数据,如第100到200条的数据,每次都需要与后台进行查询交互。
到底使用前台分页还是后台分页,要看数据量,如果数据量不多的话,如几十条或几百条,可以考虑使用前台分页。如果有几千条、几万条,甚至更多的时候,就不能使用前台分页的方式,因为把所有的数据返回到前台时,前台压力太大,数据从后台传到前台所需要的时间太多,导致系统变得响应很慢。这时候就要考虑使用后台分页了,每次只查询所需要的数据,由后台返回,这样每次只需要返回少量的数据就可以了。
至于后台分页的实现方式,可能有很多种,就看具体怎么实现了。
可以设计一个Flex分页组件,既可以支持前台分页,又能支持后台分页。


Flex 经典案例 收藏
Flex开源项目
原文地址:http://www.cnblogs.com/analyzer/archive/2008/06/02/1212050.html
1. Flexbox
http://flexbox.mrinalwadhwa.com/
这是一位来自印度的flex开发者 在07年2月份建立的flex组件库,里面也有不少好东西。
2. Flexlib
http://code.google.com/p/flexlib/
由Dougmccune 等人建立的flex组件库,其中有不少实用的组件。
3.SpringGraph Flex Component
http://mark-shepherd.com/blog/springgraph-flex-component/
非常酷的拓扑关系组件!
4.Flex Visual Graph Library
http://code.google.com/p/flexvizgraphlib/
又一个拓扑图形展示的类库,动态效果那叫“惊艳”!
该项目的讨论组:
http://groups.google.com/group/flexvizgraphlib
5. Open Source Framework for Flex / Flash & AIR(Apollo)
http://code.google.com/p/advancedflex/
The Advanced Flex project is open source Libraries & Framework for Adobe Flex & Flash developer. This is the framework written in AS3.0 & MXML for Flex & Flash & AIR(Apollo).
看起来里面涉及到了AOP及debugger等内容,有时间要好好看看了。
6. Open Source Flex Component: TreeMap
http://www.zeuslabs.us/2007/11/14/open-source-flex-component-treemap/
7. FlexMDI
http://code.google.com/p/flexmdi/
主要解决多窗口应用生成的问题,全名叫做:Flex Multiple Document Interface ,效果很不错,对于做基于窗口的应用来说是个好的起点。
8. 反射组件类reflexutil
http://code.google.com/p/reflexutil/
这是作者的博客:
http://blog.deconcept.com/
9. 对象处理器flex-object-handles
http://code.google.com/p/flex-object-handles/
作者对该组件的介绍:
http://rogue-development.com/objectHandles.xml
WIKI:
http://code.google.com/p/flex-object-handles/wiki/ObjectHandlesUsage
功能是很强大,不过要想自己使用,还需修改一番!
10.CheckboxTree和Carousel组件
http://giles.roadnight.name/components.cfm
都有演示和源码!
11.Flex拖拽库
http://code.google.com/p/flex-drag-n-drop-lib/
新鲜出炉的类库,太棒了,以后做拖拽处理就方便多了!
12. birdeye
http://code.google.com/p/birdeye/
该项目是一个比较庞大的项目涉及数据可视化的多个方面:
关系分析展示:
Relational Analysis ( RaVis )
空间信息分析展示:
GeoSpatial Analysis (GeoVis )
数值分析展示:
Quantitative Analysis (QaVis )
历史数据分析
Temporal Analysis (TaVis )
变形类库:
General Utility (GuVis )
13.antennae
http://code.google.com/p/antennae/
基于ant的Flex工程编译模版,内置FlexUnit等测试工具,很强大的说。
14.Degrafa:声明式的图形描述框架
官方网站:
http://www.degrafa.com/
googlecode:
http://code.google.com/p/degrafa/
演示:
http://samples.degrafa.com/
个人还是喜欢用AS3和flashIDE来绘图,不太喜欢这个东西。不过这可框架有专门的组织来推动,似乎前景不错!
15.openflux
号称是 an open-source Flex component framework which allows developers to create radically new and custom Flex components,似乎是基于下一代Flex组件标准,但是目前还没看到更多的东西。只有这个:
http://www.bobjim.com/2008/04/04/updated-plexiglass-openflux-3d-example/
该项目的GoogleCode:
http://code.google.com/p/openflux/
16.FlexReport
http://code.google.com/p/flexreport/
作者博客:
http://www.kemelyon.com/bts/
一个开源的客户端报表生成组件,目前唯一不足的是不能消除字体的锯齿问题,不过只要不放大字体,应该没问题
********************************************************************************************
AS3开源项目
1.Flex/Actionscript Math Library
http://code.google.com/p/as3mathlib/
The Flex/Actionscript Math Library (as3mathlib) is intended to provide a rudimentary numerical analysis toolkit for the Actionscript/Flex programming environment.
一个很不错的基础项目,不过看起来还没有完成:This library has just been converted from Actionscript 2 to Actionscript 3. It is not ready for general use.
2.ActionScript 3.0 library for several basic utilities
http://code.google.com/p/as3corelib/
AS3核心类库,里面有包括加密、图形文件编码等等类库。
3.alivepdf
http://code.google.com/p/alivepdf/
是一个Open-source AS3 PDF library,目的在于将flash内容转为pdf文件信息,通过后台程序来生成pdf文件。
4.Tweener
http://code.google.com/p/tweener/
A class for creating tweens in actionscript 2 and 3 - because there’s infinity between 0 and 1.
5.ActionScript 3 libraries for interactive visualizations on the web
http://flare.prefuse.org/
刚(10.22.2007)发布的数据可视化工具包,目前alpha版,不过有不少亮点了,很有希望。
6.Dependency injection / Inversion of control container for ActionScript 3, Flash 9, and Flex 2
http://code.google.com/p/di-as3/
7.as3ds
http://code.google.com/p/as3ds/
AS3 Data Structures For Game Developers
以前记得这个好像是收费的,现在看起来没限制的使用了。
8.Pulse粒子系统
作者对该系统的介绍:
http://www.rogue-development.com/pulseParticles.html
Google code:
http://code.google.com/p/pulse-particle/
演示地址:
http://rogue-development.com/pulse/explorer/
9.AS3 GIF Player Class
http://www.bytearray.org/?p=95
GoogleCode:
http://code.google.com/p/as3gif/
10.AS3的物理引擎(ActionScript 3 Physics Engines)
http://henryjones.us/articles/actionscript-3-physics-engines
11. 数据可视化类库Prefuse
http://flare.prefuse.org/
the flare visualization toolkit:ActionScript 3 libraries for interactive visualizations on the web.
12.文档解析类库:vanrijkom-flashlibs
http://code.google.com/p/vanrijkom-flashlibs/
其中最有用的可能是地图文件和3D文件的解析类库了!
13.MinimalComps: Minimal AS3 UI Component Set
http://www.bit-101.com/blog/?p=1126
14.GoogleMap Flash Interface
http://code.google.com/p/google-maps-flash-interface/
可惜的是written in ActionScript 2,不过应该有借鉴意义。
15.ScaleBitmap : 9-slice bitmap class
http://www.bytearray.org/?p=118
一个缩放位图的类,很有用!
16.开源AS3即时通讯类库XIFF
http://www.igniterealtime.org/projects/xiff/
17.另一粒子系统Flint Particle system
http://flintparticles.org/
18.as3httpclientlib
An HTTP/HTTPS client library for Actionscript 3.
http://code.google.com/p/as3httpclientlib/
19.AS3 Cryptography Library
http://crypto.hurlant.com/
******************************************************************************
AS33D项目
1. PV3D
虽然该项目发布不长时间,但是它已经名声远扬了,遗憾的是这段时间它的官方博客不能访问了,只能访问它其他网站:
Google code
http://code.google.com/p/papervision3d/
Wiki
http://wiki.papervision3d.org/
John Grden
http://www.rockonflash.com/blog/
2. away3D:
官方网站:
http://www.away3d.com/
google code:
http://code.google.com/p/away3d/
同pv3d一样,是基于actionscript 3的flash3D引擎:
Away3D is a realtime 3d engine for flash in actionscript 3, originally derived from Papervision3D
************************************************************************************
与JS相关类库
1.SWFAddress
http://www.asual.com/swfaddress/
项目地址:
http://sourceforge.net/projects/swfaddress
SWFAddress is a small, but powerful library that provides deep linking for Flash and Ajax. It’s a developer tool, allowing creation of unique virtual URLs that can point to a website section or an application state. SWFAddress enables a number of important capabilities which are missing in today’s rich web technologies
该类库解决了swf的难题,深度链接,也是flex3的一个重要特色,值得关注!
2. 不可不提的swfobject
http://code.google.com/p/swfobject/
SWFObject is an easy-to-use and standards-friendly method to embed Flash content, which utilizes one small JavaScript file
3.HTMLWrapper
http://code.google.com/p/htmlwrapper
Motion & Color Inc. today open-sourced a public beta version of
Wrapper, formerly used for closed-sourced projects. Wrapper is a
cross-browser compliant HTML/CSS rendering engine written in
ActionScript that sits on top of your standards compliant HTML page.
Wrapper eliminates cross-browser issues and makes integrating
ActionScript and HTML/CSS projects possible without needing to
compile. Wrapper will be available free from
***********************************************************************************
企业级组件库
1.YahooFlex/Flash组件ASTRA Galore
ASTRA Galore: New Flash and Flex Components
http://www.yswfblog.com/blog/2008/01/30/astra-galore-new-flash-and-flex-components/
官方的话是这么说的:
Our ASTRA library of components has just been updated with three new Flash components and seven (yeah, we are serious about this) new Flex components, as well as some important updates to the existing ones.
Yahoo,真棒!
***********************************************************************************
ROR与Flex相关类库
1.The Ruby on Rails RIA SDK by Adobe
http://code.google.com/p/rubyonrails-ria-sdk-by-adobe/
2. as3Stomp - Project site and source code
http://flexonrails.net/?p=99
该项目在Googlecode地址:
as3-stomp
This library is an actionscript 3 implementation of the Stomp protocol. It enables communication between Flash or Flex and any Stomp broker.
It has been primarily designed to work with Apache ActiveMQ.
*************************************************************************************
测试类库
1. 使用FlexUnit
http://www.adobe.com/devnet/flex/articles/unit_testing.html
http://code.google.com/p/as3flexunitlib/
2. 可视化Flex单元测试框架visualflexunit:
Announcing Visual FlexUnit - A Visual Testing Extension for FlexUnit
该项目的home page 在google code。
作者Douglas McCarroll与合作公司Allurent共同建立了这个项目,并开源供大家使用。
**************************************************************
FlexMap组件
1. uMap(免费)
homepage:
http://www.afcomponents.com/components/umap_as3/
demos:
http://ccgi.arutherford.plus.com/website/flex/UMap/UMapFlexDemo/
mouseover to triangle to show picture:
http://ccgi.arutherford.plus.com/website/flex/modestmaps/sampleCCTV/
2.modesMap(开源)
homepage:
http://modestmaps.com/
demos:
http://modestmaps.com/example.html
http://modestmaps.com/tutorial-actransit/actransit.html
************************************************************************
Flex框架类库
1、针对Cairngorm的扩展框架:Flexcairngoam
http://code.google.com/p/flexcairngorm/
Adobe官方的cairngorm框架早就被人们诟病,这次这个非官方的补充,看来是个容易让人接受的框架了!

 

 

要想成为一名优秀的Flex编程人员,单单知道怎么样去使用Flex内建的容器和组件是不够的,而且是远远不够。

下面是我对这个问题的一些看法......并且给出了一些资源和关键字,你可以通过Google轻易地找到这些关键字。

1、面向对象编程(OOP)

ActionScript 3是Flex的基石,它是一个完全面向对象的语言。尽管面向对象这个概念并不是很好理解,但是面向对象编程是学习的Flex的一个前提条件。如果你之前有面向对象编程(Java, C#, Ruby等)的经验的话,那么你就可以很快入门。如果没有的话,那么你须要迟早找本OOP的书籍来学一下。
深入浅出Java
使用ActionScript 3.0进行面向对象编程

注意:有些人可能会问 - “那么设计模式呢?”让我们一步一步来,好吗?你们自己先学一下类和对象、接口、继承、组合、多态、封装等。只有学完这些之后你才可以去学习设计模式。事实上,如果我要写一篇名为“一名伟大的Flex开发者须要知道的10个内容”的文章话,那么设计模式将会是第一个。


2、ActionScript/MXML

ActionScript是与MXML一起配合来开发Flex应用程序的。MXML是一种用XML写成的基于标签的声明性语言。每一个标签都映射到一个与之相对应的ActionScript类。MXML主要是用来对用户界面进行布局,而ActionScript则用来实现业务逻辑。当然存在例外的情况。

Flex Framework包括上百个ActionScript类和接口来帮助你开发Flex应用程序。你对ActionScript以及MXML的熟练程度直接影响到你的技术水平。

一周学会Flex
Tour De Flex
ActionScript 3.0编程精髓

注意:你应该对Flex Language Reference非常熟悉。作为一个Flex开发者,你基本上每天都要用到它。


3、调试

开发者的很大一部分时间都是在调试。明显地,调试需要找到错误的根源。但是,调试也是学习新语言很好的一种方式。

很幸运地,网上有许多可用的工具来帮你进行调试。花点时间来学习使用这些工具。很快你所花的时间就会给你带来效益了。

Flash Builder 4 Debugger
De MonsterDebugger
Kap Inspect


4、事件驱动编程

Flex应用程序是事件驱动的。每一个动作都是一个异步事件产生的结果。

作为一名Flex开发者,你必须知道怎么样去响应事件、怎么样去创造事件和抛出事件。为了实现这一点,你必须对Flex的事件结构有充分的了解,也就是说,你要熟悉以下几点概念:

内建事件(Flash Player或者Flex Framework事件)
自定义事件(由开发者定义的继承自Event类或其子类的事件)
事件抛出,事件广播(查看EventDispatcher类和它的dispatchEvent方法)
事件侦听,事件处理(查看EventDispatcher类和它的addEventListener和removeEventListener方法)
事件流(捕获、目标和冒泡阶段;target与currentTarget的区别)
事件默认行为(查看Event类及其子类和preventDefault方法)


5、数据绑定

表面上,数据绑定很容易理解。把一个属性的值与另一个属性的值绑定到一起。当源属性的值发生改变时,目标属性的值也会改变。

然而,如果随意使用数据绑定的话是会影响程序性能的。充分了解数据绑定能够帮助你决定什么时候适合用数据绑定,什么时候不适合。

Flex Tips - Using Bindable Metadta Events
Michael Labriola's presentatin entitled Diving in the Data Binding Waters

6、项目渲染器(item renderer)

设计优秀的Flex应用程序的一个特点是其显示数据的方式在视觉上令人信服。Flex提供了一些基于列表的负责显示数据的控件(DataGrid,List, TileList, HorizontalList等)。然而,只有使用项目渲染器才能让这些基于列表的控件自定义数据显示方式。

Flex Examples - Item Renderers in Practice
A Deep Dive into Flex 4 Lists and Layouts


7、访问远程数据

你见过哪些应用程序是不用与数据打交道的吗?我没见过。学习如何使用HTTPService、WebService和RemoteObject来获取数据。一个Flex结构框架或许可以帮你(看第9点)

Retrieving and handling data with HTTPService
Retrieving and handling data with WebService
Retrieving and handling data with RemoteObject


8、样式/皮肤

不要忘记Flex是一种图形用户界面技术,因此存在一定的设计期望。作为一名Flex开发者 ,你应该知道如何通过CSS样式或者其它方式来自定义你的Flex应用程序的外观。

要使用Flex 4,就没有借口。花点时间来开发一下你的右脑,这是一次不错的改变,并且它可以让你与其它Flex开发者区分开来。

Flex Style Explorer
ScaleNine
Introduction to Flex : Part 3 - Styles & Skins


9、至少一种Flex结构框架

大多数Flex结构框架都实现了MVC设计。并且,许多框架都支配着你的代码的组织方式和包装方式。

尽管有些人会认为使用框架是没有必要的,但是我相信即使只使用一个框架也会让一个Flex开发者受益匪浅。简单地看着一项技术(好的或坏的)使用框架来解决一些结构性问题能帮助作为开发者或架构师的你成长。

并且,你也不能否认如果你有使用框架的经验,那么你的职位竞争力将会在本质上有所提高。Jess Warden最近告诉我“只有少数商店不使用框架,但这是罕见的。不管你喜不喜欢,使用框架已经成为一种'时尚'。”我同意他的观点。

Cairngorm
Parsley
PureMVC
Mate
Swiz
Robotlegs


10、组件的生命周期和显示列表

之前我是觉得不用去学Flex组件生命周期和显示列表的,直到我第一次写自定义组件的时候。在此之前,我都是使用内建的Flex组件并且很高兴地让MXML帮我处理显示列表。我从没使用过addChild、createChildren或者commitProperties方法,我使用了creationComplete事件来做全部事情。

我第一个自定义组件使用了许多异步事件,我并不能预测事件处理的顺序。但是在我学习了Flex组件生命周期方法之后,我重新掌握了控制。

这些生命周期方法早就有了。学习一下它们是怎么工作的,并且利用它们来帮助你解决问题。你掉的头发越少,你的生活会更加美好。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
在线直播报名
返回顶部
顶部