Mryqu's Notes


  • 首页

  • 搜索
close

[OpenUI5] 获得当前页面语言

时间: 2015-01-10   |   分类: FrontEnd     |   阅读: 7 字 ~1分钟
获得当前页面语言的方法: javascript:document.getElementsByTagName('html')[0].getAttribute('lang') jQuery: $('html').attr('lang') OpenUI5: sap.ui.getCore().getConfiguration().getLanguage() 示例:

[OpenUI5] 快速定位OpenUI5问题的一个方法

时间: 2015-01-09   |   分类: FrontEnd     |   阅读: 38 字 ~1分钟
sap.ui.base.Object是所有OpenUI5对象的父类,它的某些方法对快速定位OpenUI5问题很有帮助。我写了一个小函数通过OpenUI5对象的元数据获得类名,并且获得OpenUI5对象的ID信息。 traceUI5Object: function(obj) { if(obj instanceof sap.ui.base.Object) console.log(obj.getMetadata().getName()+"{id:\'"+obj.getId()+"\'}"); } traceUI5EventProviders: function(obj) { var that = obj; while (that && that instanceof sap.ui.base.EventProvider) { console.log(that.getMetadata().getName()+"{id:\'"+that.getId()+"\'}"); that = that.getEventingParent(); } } traceUI5EventProviders函数运行结果示例: sap.ui.commons.CheckBox{id:'check1'} sap.ui.commons.Panel{id:'panel1'} sap.ui.core.mvc.JSView{id:'leftView'} sap.ui.commons.Splitter{id:'Splitter1'} sap.ui.core.mvc.JSView{id:'__jsview0'} sap.ui.core.UIArea{id:'content'} 在编写和调试OpenUI5时,有时会有Exception抛出。 假定上面图中代码会抛出Exception,通过this我们看到的的是一个Factory,通过sId我们可以找到发生问题的定义了ID的控件。但是如果控件ID是自生成的,就不太容易了。我们可以通过监视表达式获取(组件链上所有的)组件类名及ID,这样就可以更快定位导致抛出Exception的OpenUI5视图/控件了。

[OpenUI5] MVC和EventBus示例

时间: 2015-01-09   |   分类: FrontEnd     |   阅读: 13 字 ~1分钟
昨天发了一个帖子[OpenUI5] MVC:访问其他View/Controller的方法,里面的示例是用违反MVC原则的方式演示一下效果,今天又在jsbin上做了个OpenUI5MVC & EventBus示例:http://jsbin.com/nixomo/1/edit?html,output。 sap.ui.core.EventBus使用起来很简单。 通过var bus = sap.ui.getCore().getEventBus() 获得消息总线 接收方首先在某个消息通道上订阅消息时间并注册消息监听器listener 发送方在这个消息通道上发布消息,接收方就会去处理 通过阅读代码可知,EventBus一个实例对应一个消息通道,EventBus的_defaultChannel和_mChannels都是sap.ui.base.EventProvider实例,用于事件注册与分发、将数据与事件的绑定/解绑。上图中就是消息通道"rightViewChannel"对应的EventBus实例,已经注册了两个事件setRightPanelVisible和doSomething。

[OpenUI5] MVC:访问其他View/Controller的方法

时间: 2015-01-08   |   分类: FrontEnd     |   阅读: 48 字 ~1分钟
访问其他视图/控件的方法 在创建视图/控件实例时,设置ID: var oViewLeft = sap.ui.jsview("leftView", "com.yqu.view.Left"); var oPanelRight = new sap.ui.commons.Panel("panel2"); 通过sap.ui.getCore().byId(“compID”)获取上述视图/控件。控制器可以通过getView()函数获取自身对应的视图,但是该视图内部的控件还得通过这种方式获取: var refViewLeft = sap.ui.getCore().byId("leftView"); var refPanelRight = sap.ui.getCore().byId("panel2"); 需要注意的是,上面讲的是JS视图最简单的一种情况。 对于使用了静态视图ID的XML、HTML和JSON视图,其内部的控件ID会自动添加视图ID做前缀。JS视图中,在动态实例化控件时通过oController.createId(“ID”)也可以生成用视图ID做前缀的唯一ID。 var refSubView = oViewParent.byId("subViewId"); refSubView.byId("ctrId"); JS、XML、HTML和JSON片断(Fragment)是更轻量级的分割和UI重用单元,每个片段示例化时为了保证唯一性,即使没有定义片段ID也会自动生成,其内部的控件ID会自动添加视图ID和片段ID做前缀。 当没有给定片段ID:myControl = sap.ui.getCore().byId(“myControl”) 当给定片段ID “myFrag” :myControl =sap.ui.core.Fragment.byId(“myFrag”, “myControl”) 访问其他Controller的方法 最简单的方法是使用一个全局变量引用所需控制器 不推荐 通过获取其他控制器对应的视图来访问该控制器的函数:sap.ui.getCore().byId(“viewId”).getController().method(); 直接调用控制器的函数:sap.ui.controller(“namespace.Controllername”).method(); 最推荐的是在控制器(或应用组件)之间的通信使用sap.ui.core.EventBus,这种事件/消息总线模式可以更好进行解耦。 在jsbin上做了个Retrive other component示例:http://jsbin.com/xufeyo/1/edit?html,output 这个示例演示了一个视图如何控制另外一个视图的控件是否显示,一个视图调用了另外一个视图控制器的方法。但是它完全违反了我以前有篇学习帖子重温MVC:一个很好的MVC中的规则,不可以在实际工作中使用! 此外通过调试找到了sap.ui.core.Core里面ID与组件的映射表。

[OpenUI5] MVC示例:JSView embedding JSVIEW

时间: 2015-01-07   |   分类: FrontEnd     |   阅读: 3 字 ~1分钟
OpenUI5 SDK的演示程序里面有一个视图嵌套另外一个视图,但是通过Componentcontainer和Component.js实现的。一直对视图直接嵌套另外一个视图觉得理所当然但是有点顾虑,此外也担心外层视图的数据模型如何传递给内部视图。当然内外两层视图可以使用不同的数据模型,但是如果不知道共享一份数据视图是否可行? 在jsbin上做了一个示例:http://jsbin.com/jirogo/1/edit?html,output,结果显示担忧是多余的

两个HTML线上工具:jsbin和jsfiddle

时间: 2015-01-07   |   分类: FrontEnd     |   阅读: 16 字 ~1分钟
最近做HTML5开发,关注了两个HTML线上工具,都可以编辑、测试、验证、存档和分享HTML、JavaScript和CSS代码,还可以引入一些常用的外部JS库,例如jQuery、Bootstrap、YUI、AngularJS…,感觉都很不错。 http://jsbin.com/ http://jsfiddle.net/ 这两个线上工具使用方便简单,网上也有很详细的介绍贴:介紹好用工具:JS Bin ( 網站前端工程師的學習利器 )、介紹好用工具:jsFiddle - Online Editor for the Web。 对于OpenUI5演示,jsbin更好用,因为它没有jsfiddle那些限制(HTML区域不允许有header、meta,JavaScript区域不允许有scipt标签和参数等等)。 附上一个我在jsbin上做的sap.ui.table.TableMVC示例:http://jsbin.com/jojeta/1/edit?html,output

[OpenUI5] 调节元素间距

时间: 2015-01-05   |   分类: FrontEnd     |   阅读: 20 字 ~1分钟
在使用OpenUI5时,有时两个元素间距不合预期,我大体可用两种方式进行改进: 一种方式是添加自己定制的CSS类,然后通过addStyleClass方法对控件设置自己定制的CSS类 ​另一种方法土点,就是对需要调整间距的两个元素上增加一个HBox/VBox控件,然后在两个之间加一个定宽/高的控件调节间距。``` //在oControl1和oControl2之间增加15px的间距 new VBox({ items: [ oControl1, new HBox({ height: “15px”, fitContainer: true }), oControl2 ] }) ​

HTML Busy Indicator

时间: 2015-01-04   |   分类: FrontEnd     |   阅读: 51 字 ~1分钟
看了一下OpenUI5的LocalBusyIndicator效果,感觉跟自己想的转圈圈的那种spinner不一样:https://sapui5.hana.ondemand.com/sdk/test-resources/sap/ui/core/demokit/LocalBusyIndicator.html 想看看bootstrap的busy indicator,竟然没有,不过找到了开发组的讨论:https://github.com/twbs/bootstrap/issues/12598 不止一次有人建议开发busy indicator,不过Mark Otto(Bootstrap是Mark Otto和JacobThornton共同开发的)没同意。因为满足不了下列条件: It needs to be retina-ready Needs to work in IE8+ Needs to work on light backgrounds and dark—alphatransparencywould be bomb Would be cool if it was a font, but PNG or GIF is fine,too Available in multiple sizes 开发一款满意的控件容易吗!!!还好我就用用而已 下面是我找到的一些Busy Indicator资源: http://fgnass.github.io/spin.js/ http://semantic-ui.com/elements/loader.html http://w3lessons.info/2014/01/26/showing-busy-loading-indicator-during-an-ajax-request-using-jquery/

YCSB相关博文

时间: 2015-01-03   |   分类: Tech     |   阅读: 11 字 ~1分钟
使用YCSB测试MongoDB的微分片性能 使用YCSB测试Mongodb性能的方法简介 NoSQL数据库压力测试工具YCSB使用 使用YCSB对HBase进行测试 性能测试:SequoiaDB vs. MongoDB vs. Cassandra vs. HBase

Java的Base64编解码

时间: 2015-01-01   |   分类: Java     |   阅读: 210 字 ~1分钟
Base64编码是网络上最常见的用于传输8Bit字节代码的编码方式之一,用基于64个可打印字符[大小写字母52个字符、数字10个字符、+和/2个字符(对于URL为-和_),补全用=]来表示二进制数据的一种表示方法。相关协议可见: RFC4648 The Base16, Base32, and Base64 Data Encodings RFC2045 MIME Part One: Format of Internet Message Bodies RFC2046 MIME Part Two: Media Types RFC2047 MIME Part Three: Message Header Extensions for Non-ASCII Text RFC2048 MIME Part Four: Registration Procedures RFC2049 MIME Part Five: Conformance Criteria and Examples 因为有些网络传送渠道不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就不能通过邮件传送。通过Base64编码可以把不可打印的字符也能用可打印字符来表示。 Java6之前 在Java6之前,JDK核心类一直没有Base64的实现类。除了使用Sun内部实现sun.misc.BASE64Encoder、sun.misc.BASE64Decoder或com.sun.org.apache.xerces.internal.impl.dv.util.Base64外,就需要使用第三方类库了。 Java6 Java6中添加了Base64的实现:javax.xml.bind.DatatypeConverter两个静态方法parseBase64Binary和 printBase64Binary。 import javax.xml.bind.DatatypeConverter; public class HelloBase64 { public static void main(String[] args) { String me = "blog.sina.com.cn/yandongqu"; byte[] plainContent; String base64Str = DatatypeConverter.
阅读全文 »
36 37 38 39 40 41 42 43 44

Programmer & Architect

662 日志
27 分类
1472 标签
RSS 订阅
GitHub Twitter FB Page
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%