Yesterday I upgrade Ubuntu on my PC in office from 11.10 to 12.04, everything seemed ok.
However, unfortunately, this morning when I tried to clean cache of a symfony project, it reported a Fatal error:
PHP Fatal error: Class 'SQLiteDatabase' not found in /home/htsg/workspace/esr-momentum/lib/vendor/symfony/lib/cache/sfSQLiteCache.class.php on line 166
After searching online, I found that 12.04 uses sqlite3 as default, and doesn't install sqlite any more.
I tried a solution which install obsoleted lib via pecl, but failed when did make.
So I had to try another way:
1. downloaded a old version sqlite package from http://packages.ubuntu.com/natty-updates/php5-sqlite
2. extracted the deb file, found the sqlite.so file, copy it to /usr/lib/php5/20090626
3. change the file privilege to root:root
4. create a new configure file sqlite.ini in /etc/php5/conf.d, whose content is
extension=sqlite.so
5. sudo service apache2 restart
done.
Tech issues about computer, networks and programming and answers during or after my work. 工作及业余时间遇到的各种电脑,网络以及编程等相关的技术问题及解答
Jun 28, 2012
Jun 14, 2012
解决Ajax调用前后页面提示在IE和Chrome中不显示的问题 (solution to indicator wont appear during Ajax call on IE and Chrome)
开发一个页面,页面中的部分内容采用Ajax更新,在Ajax调用前,向页面中添加信息载入提示信息(一个旋转的动画图标),在Ajax调用后,从页面中除去该提示信息。流程如下:
添加提示 >> Ajax调用 >> 除去提示
在开发过程中发现,如果Ajax调用采用异步方式,调用时FF浏览器中不会出现提示,因为添加和除去提示的动作都与Ajax调用异步执行了,也就是说,没等Ajax调用完成,除去提示的语句就被执行了。因此尝试将Ajax调用方式改为同步(其实这是不好的),结果在FF中达到了预期的效果。
然而换到IE和Chrome中,提示依然不出现。经过调研,发现这是因为:同步调用的Ajax,在IE和Chrome中都会阻塞调用前的DOM更新(http://bugs.jquery.com/ticket/7464,http://bugs.jquery.com/ticket/8819)。尝试用setTimeout函数调用Ajax,依然不能解决问题。
继续调研,最终找到了解决方案:
1. Ajax调用方式设置为异步
2. 把添加提示和除去提示从Ajax调用语句的前后,分别转移到Ajax调用内的beforeSend和complete属性的函数中去
流程如下:
$.ajax({
type : 'POST',
url : url,
async : true,
beforeSend : function() {
添加提示
},
complete : function() {
除去提示
},
success : function(data) {
....
}
});
这样一来,把提示信息的处理交给了jQuery的.ajax函数,问题得到解决。
参考链接:
http://stackoverflow.com/questions/2227397/jquery-ajax-beforesend-and-complete-working-properly-on-firefox-but-not-on-ie8
http://stackoverflow.com/questions/5182466/ajax-requests-on-chrome-using-jquery-freezes-page-untill-they-all-complete
添加提示 >> Ajax调用 >> 除去提示
在开发过程中发现,如果Ajax调用采用异步方式,调用时FF浏览器中不会出现提示,因为添加和除去提示的动作都与Ajax调用异步执行了,也就是说,没等Ajax调用完成,除去提示的语句就被执行了。因此尝试将Ajax调用方式改为同步(其实这是不好的),结果在FF中达到了预期的效果。
然而换到IE和Chrome中,提示依然不出现。经过调研,发现这是因为:同步调用的Ajax,在IE和Chrome中都会阻塞调用前的DOM更新(http://bugs.jquery.com/ticket/7464,http://bugs.jquery.com/ticket/8819)。尝试用setTimeout函数调用Ajax,依然不能解决问题。
继续调研,最终找到了解决方案:
1. Ajax调用方式设置为异步
2. 把添加提示和除去提示从Ajax调用语句的前后,分别转移到Ajax调用内的beforeSend和complete属性的函数中去
流程如下:
$.ajax({
type : 'POST',
url : url,
async : true,
beforeSend : function() {
添加提示
},
complete : function() {
除去提示
},
success : function(data) {
....
}
});
这样一来,把提示信息的处理交给了jQuery的.ajax函数,问题得到解决。
参考链接:
http://stackoverflow.com/questions/2227397/jquery-ajax-beforesend-and-complete-working-properly-on-firefox-but-not-on-ie8
http://stackoverflow.com/questions/5182466/ajax-requests-on-chrome-using-jquery-freezes-page-untill-they-all-complete
IE7中z-index相关问题解决办法 (z-index problem on IE7 solution)
开发一个页面,页面中有两个临近的元素,上边的是一个导航下拉菜单,下边的是一个jquery-ui的slider。在FF和Chrome中都可正常显示,但是在IE7中,本应被下拉菜单遮住的slider反而出现在菜单的前面。
这是由于一个IE7的bug:“In Internet Explorer positioned elements generate a new stacking context, starting with a z-index value of 0. Therefore z-index doesn’t work correctly”,所以IE7不能正确处理不同的设置了position属性的页面元素下的子元素的z-index顺序,常常导致z-index序号大的子元素反而被另一页面元素下z-index序号小的子元素所覆盖。
一种解决办法是:设置z-index序号大的子元素的父元素的z-index属性,赋一个更大的序号。这个办法解决了上面提到的导航下拉菜单和slider在IE7中的显示问题。至于为什么有效,不知其所以然。。。
参考于这篇博文:http://brenelz.com/blog/squish-the-internet-explorer-z-index-bug/
这是由于一个IE7的bug:“In Internet Explorer positioned elements generate a new stacking context, starting with a z-index value of 0. Therefore z-index doesn’t work correctly”,所以IE7不能正确处理不同的设置了position属性的页面元素下的子元素的z-index顺序,常常导致z-index序号大的子元素反而被另一页面元素下z-index序号小的子元素所覆盖。
一种解决办法是:设置z-index序号大的子元素的父元素的z-index属性,赋一个更大的序号。这个办法解决了上面提到的导航下拉菜单和slider在IE7中的显示问题。至于为什么有效,不知其所以然。。。
参考于这篇博文:http://brenelz.com/blog/squish-the-internet-explorer-z-index-bug/
Subscribe to:
Posts (Atom)