有个bug:动态生成的html片段里面有个没有设置宽高的img,这时候页面会出现bug,渲染页面的时候并没有计算图片的宽高,貌似是优化策略的问题,firefox和chrome都中枪了,而且这个bug只有浏览器第一次启动的时候可以重现,如果给图片的src中加上?t= new Date 让图片每次都重新加载,则每次都可以重现此bug,图片200的时候重现,304的时候页面无问题,因为这时已经可以用本地图片文件本身计算宽高了
作者归档:ishowshao
让Extjs combobox form submit 提交valueField,而不是displayField
如果用form.submit() 或者form.doAction(‘submit’)
是不是遇到过提交到后台的值,是combobox选中的那个显示的值
这个问题是这样的
ExtJS的ComboBox是它自己通过n多html标签绘制出来的,作为一个纯粹的html的<form>,需要一个类似<input>的标签才是可提交的值
Extjs的表单中ComboBox默认是没有这个对应的<input>的,虽然你getValue()可以获取正确的值
需要设置一个hiddenName ,这样Extjs会给Combobox增加一个<input>,这个<input>会被设置为valueField对应的值,这样你form.submit() 或者form.doAction(‘submit’)就可以传递value给后台了
Extjs文档里是这么描述的
hiddenName : String
mac os 终端/命令行提示符变为bogon
今天突然发现终端里的提示符变为bogon了,以为出了什么问题,baidu/google了一圈,最后确定/etc/bashrc里面PS1变量里面的\h 选项(host) 变成了bogon,这个host名称是由什么获取的我暂且还不能确定,但是肯定是和路由有关系的,今天的网络环境并不是我自己的路由,我想应该就是这个原因吧
发现了一个设置host的方法
sudo scutil –set HostName 新的主机名
ExtJS 组件扩展 组件化编程 扩展组件 组件编程
看到很多人搜索这些关键词带来的访问,我觉得有必要专门写一篇文章提供给这些关键词,也算是推广一下ExtJS 组件化编程吧
我是实用ExtDesigner的,所以这里讲讲如何利用ExtDesigner设计自己的组件。
先来一个常用的例子,构建一个自己的Form组件,用ExtDesigner拖拖拽拽,一个简单的From就出来了,如图
之后我们给这个From设定一下参数,在ExtDesigner界面的右下角,其中有一个参数是很重要的,就是jsClass这个参数,这个参数设定的是此Form的对象名称 ,其他参数可以根据自己对界面样式的要求自定设定,比如宽度高度等,如图
设置好参数后,我们看一下它生成的源代码
他生成了一个叫做MyFormUi的对象,这个对象名称就是根据刚才参数中jsClass设定的。
现在我们保存一下工程,然后点击一下那个导出工程的按钮
找到刚才保存工程的文件夹,它会自动生成几个文件
其中有两个主要的js文件,MyForm.js和MyForm.ui.js,这两个文件一个是界面对象,一个是事件处理对象,ExtDesigner已经帮你把界面和逻辑分离的工作做好了,是不是很高级?如果你不理解为什么这么做,参考一下我的另外一篇文章:ExtJS编程思想和开发方式|ExtJS单页面系统|ExtJS单页面应用
MyForm.ui.js中的代码和上面图片上的是一样的,来看一下MyForm.js这个文件
注意看红框框里面那句话,目前这个文件都是ExtDesigner自动生成出来的。那句话啥意思我就不翻译了。
现在讲讲如何实现事件处理和添加自定义方法 :
现在我们把MyForm对象改成这样,如图,红框框的部分是新加的代码
在 initComponent方法中增加了一个事件监听,this.addListener(‘afterrender’, this.init, this);,这个目的是增加一个自己的初始化方法(init)我们可以在这个init方法里面尽情的做自己需要做的事情,我在这个init方法里面又调 用了一个initListeners方法,因为某些时候我们要增加许多事件处理函数,所以把所有事件处理都放在这个initListeners方法中,比 较清晰。
我们的init函数是在afterrender之后调用的,注意:这个afterrender事件,在组件的声明周期内只有一次, 所以我们的初始化函数也只会被执行一次,也是因为afterrender,所以我们在刚刚new过之后,在没render之前,init方法里面做的一些 设置是无效的:例如init方法里面定义了一个变量this.myVar = ‘myvar’; 在form = new MyFrom() 之后直接调用form.myVar,这样是无效的 。
下面我们做一个初始化操作,并增加一个事件处理,如图:
MyForm = Ext.extend(MyFormUi, {
initComponent: function () {
this.addListener(‘afterrender’, this.init, this);
MyForm.superclass.initComponent.call(this);
},
init: function () {
this.setTitle(‘this is my first form component’);
this.initListeners();
},
initListeners: function () {
this.get(0).on(‘focus’, this.onFocus, this);
},
onFocus: function () {
alert(‘you focus me’);
}
});
初始化操作是设置MyForm的标题,
this.setTitle(‘this is my first form component’);
增加了一个响应focus事件的函数
this.get(0).on(‘focus’, this.onFocus, this);
当我们focus第一个文本框的时候,会调用onFocus函数,onFocus函数中执行了一个alert
我们看一下运行效果
以上就是利用ExtDesigner扩展一个原生组件成为自己的组件的简单例子,其他扩展大同小异
以后有时间再介绍如何扩展底层组件成为自己的控件。
此文原创,转载注明出处
phpstorm4.0正式版发布|下载
http://download-ln.jetbrains.com/webide/PhpStorm-4.0.1.exe
PHP 5.4 Language Features Support
Check Your Code with PHP Code Sniffer
Code Coverage for PHPUnit
New PHP Code Inspections
ECMAScript Harmony Support 等新特性,具体参见
phpstorm编写CSS,冒号后面的空格的设置
有些人喜欢在css属性冒号后面加上空格例如
.class { border: 1px solid black; }
有些人不喜欢加空格例如
.class { border:1px solid black; }
phpstorm里面是有这个开关的,在settings-code style-css-other
phpstorm the jvm could not be started the maximum heap size…
这是配置问题
找到 安装目录/bin/PhpStorm.exe.vmoptions 文件,用文字编辑器打开
-Xms128m
-Xmx512m
-XX:MaxPermSize=250m <- 把这里的250改小一点,比如150,就可以了
-XX:ReservedCodeCacheSize=64m
-ea
wordpress 3.3.1要执行请求的操作,WordPress 需要访问您网页服务器的权限。 请输入您的 FTP 登录凭据以继续
问题的原因是php进程的用户和wordpress安装目录的用户不一致
wordpress在升级时会创建一个临时文件看看owner是不是和当前运行的php是否一样,如果不一样,就会出现这个界面。
遇到这个问题时给wordpress安装目录赋予777权限也是无用的,把目录chown给php执行用户即可
折腾了一圈,终于屈服了
折腾了一圈,终于还是放弃折腾了,一个全新的blog,准备沉淀一些东西…
之后慢慢把老文章转移过来…
用svn在代码中自动加入版本号等信息
$Rev$: Revision of last commit
$Author$: Author of last commit
$Date$: Date of last commit
还有个id,包含以上三个
http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html 这是keywords 描述
只要再代码头部的注释中增加如上的keywords 代码提交后就会svn就会自动替换相应的keywords为当前信息
需要在乌龟svn中设置一下
选中一个文件->属性->添加->选择svn:keywords 在输入框中添加 Rev 等需要的关键词







