URL(I)/XMLBuilder/flex横方块/amCharts..工作日志

  简单记录一下今天的工作日志:
1、 URL/uri的区别:
  这个问题之前也困惑过、搜索过但仍没有彻底弄清楚,^_^ ^_^ 发现网上的解释也大多是照搬概念。
    URL(Uniform Resource Location):统一资源定位器,格式为:{协议<服务方式>/粗放资源的主机IP地址<端口>/主机资源具体位置}。
    URL的最大缺点是: 当信息资源的存放地点发生变化时,必须对URL作相应的改变

   URI(universal Resource Identifier):统一资源标识符,格式为:{访问资源的命名机制/存放资源的主机名/资源自身的名称}

2、自定义一个类XMLBuilder, 专用于操作XML。Java API中操作XML的常用类有如下:
   DocumentBuilderFactory, DocumentBuilder, Document, SAX, XPath,
   xPathFactory, XPathExpression(提供了对编译后的xpath表达式的访问),
   xPathConstants, Node, NamedNodeMap, NodeList,Attribute

   打算有时间的话写一个操作XML的工具类,会熟悉上述API的用法。

3、 flex中制作长方条用来显示使用率等(flex4中)
    组件:HpercenterBar.mxml
   <borderContainer xmlns... ...>
      <s:layout>
        <s:HorizontalLayout verticalAlign="middle"/></s:layout>
      <s:Rect precentwidth="xx" precentHigh="yyy" alpha="zzz">
         <s:fill>
          <s:solidColor color="xx"/>
         </s:fill>
      </s:Rect>
  然后在dataGrid中使用
   <mx:itemRenderer>
    <fx:component>
       ...
    </fx:component>
  </mx:itemRenderer>


4、 Flex常用效果组件的使用
    animateProperty动画效果
    blur模糊效果
    wipeUp/wipeRight/wipeDown/wipeLeft擦出效果
    zoom缩放效果(注意其与resize的区别)
    glow发光效果
    Irist效果:通过扩展或收缩集中在目标上的巨型遮罩为效果目标设置动画
    pause效果:实现在制定时间内不执行任何操作的功能,如果作为sequence效果的子项,可以创建2个其他效果之间的暂停

5、负载均衡器(LoadBalancer)
    随集群一起部署, 提供如下功能:
    #允许应用程序或服务在多个物理(或逻辑)主机之间水平伸缩,但用户通过统一的URL进行访问
    #使用户与主机故障或服务器崩溃隔离(与会话持久性结合使用时)。
    #通过对用户隐藏内部网络来提高安全性

    LoadBalancer的特征:
    实现了分布式session管理,这也是实现Web服务器集群的关键,由于Web应用被分布到多台服务器上运行,因此保存在Session中的共享数据必须完全保持一致。Apusic LoadBalancer没有使用共享数据库来保存Session数据,共享数据库模式下,由于Session的变化是很频繁的,对数据库将造成很大的压力,最终将成为整个系统的瓶颈,Apusic LoadBalancer使用一种分布式Session服务,每个服务器管理自己所产生的Session。当Web应用从一台服务器迁移到另一台服务器时,Session也会自动进行迁移,这样使得对Session的管理被均匀地分布到所有的服务器上,任何一台服务器失效并不会使Session丢失。对应用开发者来说,要保证分布式Session能够正常工作,在Session中只能保存实现了java.io.Serializable的数据,否则 Session将无法完成迁移。

   负载均衡策略:
   a)随机选择策略
   b)Round-Robin策略
   c)权重策略

   Apusic LoadBalancer使用了内存复制技术,将每个后置服务器的Session备份在自己的缓存中,即后台某个节点处理完客户端请求时,将当前Session复制到负载均衡器中。所以使用Apusic LoadBalance时,集群中每个节点必须开启SessionService中的复制服务。

   失效转移:
   采用Apusic LoadBalancer时,由于Session缓存在Apusic LoadBalancer的缓存中,当主节点失效时,Apusic LoadBalancer从缓存取出当前的Session,将Session带到下一个节点进行处理,确保Session的可用性

   配置负载均衡:
   Apusic负载均衡器是用Apusic应用服务器实现的,也就是说,负载均衡器和其他金蝶Apusic应用服务器6.0实例没有本质区别,不同的是它上面没有安装应用系统,并且使用不同的配置文件,它只是专门提供负载均衡服务。客户通过访问负载均衡器的Web服务,来访问整个集群的资源。用户请求到达负载均衡器后,负载均衡器将它分配到某个金蝶Apusic应用服务器6.0实例上,让这个实例为此用户请求提供服务。

 
  Apusic的session复制策略:
  当采用第三方负载均衡器时,金蝶Apusic应用服务器6.0同样采用内存复制技术,与Apusic LoadBalancer不同的是,我们已经不能用第三方负载均衡器来备份状态,因此,采用了使用IP多播技术,通过IP多播和Java序列化/反序列化技术在集群中的金蝶Apusic应用服务器实例之间进行内存复制,这时候,需要开启金蝶Apusic应用服务器6.0的集群服务。Apusic集群支持两种Session复制策略:多点复制,配对复制,用户可以根据自己的需要选择不同的复制策略。默认情况下为配对复制。


6、 改ofc2为amCharts时遇到诡异错误(在组件中使用pieChart):
    TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at com.amcharts::AmPieChart/calculatePercents()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\AmPieChart.as:912]
at com.amcharts::AmPieChart/updateData()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\AmPieChart.as:844]
at com.amcharts.chartClasses::AmChart/commitProperties()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\chartClasses\AmChart.as:260]
at mx.core::UIComponent/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7772]
at mx.managers::LayoutManager/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:572]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:730]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]

     诡异之处在于: 同样的图表在application页面中能正确显示,然而其不能在组件中正确显示。

     关于调试的技巧: 使用try...catch 捕获查看其异常信息、 通过异常中的信息calculatePercents()而在数据源方面进行测试后发现异常的根源是在于数据上, 如何解决?
   待尝试方案:

    a)将arrayCollection类型的数据源替换为array或者其他amChart所支持的类型

    b)在工程中新建flex模块进行试验(怀疑amCharts在单个application中能正确显示而在项目中不能显示是因为项目中采取的是加载模块...)


7、 两种访问操作系统的方式SSH/VNC初探

——————————————8月10日——————————————————
1、 flex缩放效果
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#03BF7A, #075F96]">
   <mx:Zoom id="Zoom1" originX="0" originY="0" zoomHeightFrom=".4" zoomHeightTo="1" zoomWidthFrom=".4" zoomWidthTo="1" duration="1000" />
   <mx:Zoom id="Zoom2" originX="0" originY="0" zoomHeightFrom="1" zoomHeightTo=".4" zoomWidthFrom="1" zoomWidthTo=".4" duration="1000" />
   <mx:Image x="442" y="76" source="images/C.jpg" mouseDownEffect="{Zoom1}" mouseUpEffect="{Zoom2}" width="318" height="316"/>
   <mx:Label x="476" y="33" text="Flex制作Zoom缩放效果" width="273" fontWeight="bold" fontSize="24" color="#F7F9FB"/>
</mx:Application>


2、 关于常用的两个技巧的优劣讨论:
    a>在几乎所有的参数传递,返回值与传递值都是用一个通用的数据结构,该数据结构是一棵树,

并且每棵树上还有一个hashtable存放一些键值对
    b>需用到所有常量都写在一个类,public static final那种然后需要用到这些常量的类继承该类

3、amcharts的另类破解法(gtalk上附url)
   a>
需要继承AmChart的类,将宽、高、透明度设成0,例如:

public class Serial extends AmSerialChart
{
  override protected function createChildren():void{
   super.createChildren();
   if(_amchartsLink){
    _amchartsLink.alpha=0;
    _amchartsLink.width=0;
    _amchartsLink.height=0;
   }
   return;
  }
b>使用其他的组件将其覆盖


4、 在IDE中新建flex工程,运行flex application不出现东东? 探索...ing

5、 flex中路径问题:
   方式一: <mx:ModuleLoader url='"{ApplicationContext.getContextRoot

()}"+"/resource/swf/module/MonitorCenterModule.swf"'/> ——错误

  方式二:<mx:ModuleLoader url="{ApplicationContext.getContextRoot

()}/resource/swf/module/MonitorCenterModule.swf"/>——错误

  打印的ApplicationContext.getContextRoot()值为:
  http://localhost:8080/apusic-cloud

  方式三: <mx:ModuleLoader url="http://localhost:8080/apusic-

cloud/resource/swf/module/MonitorCenterModule.swf"/>——正确 

  方式四: <mx:ModuleLoader url='{ApplicationContext.getContextRoot()

+"resource/swf/module/MonitorCenterModule.swf"}'/>——错误

  方式五(函数式):
  private var correctUrl:String;
   private function initTest():void{

correctUrl = ApplicationContext.getContextRoot()

+"/resource/swf/module/MonitorCenterModule.swf";
Alert.show(correctUrl);
}
   在页面初始化时使用creationComplete="initTest()"
   <mx:ModuleLoader width="100%" height="100%" url="{correctUrl}"/>--仍然错误

   补充——打印correctUrl的值为:
   http://localhost:8080/apusic-cloud/resource/swf/module/MonitorCenterModule.swf

6、 /根
   ../上一级目录

7、 修复comboBox在popButton上移动的小bug

8、 google上搜索 amcharts mx module 帮助定位问题所在

9、 flex模块化的目的和方法

  

你可能感兴趣的:(数据结构,工作,应用服务器,Flex,网络应用)