最近开始写一中的新选歌系统,这次要大改,顺便练手。
想加入换肤功能(不然女生肯定觉得老是蓝色不好……),而且我想到的换肤,最简单的方式就是换 CSS,把界面颜色、图形相关的内容放入皮肤的 CSS 中就很容易了~不过问题是换肤呢?
正好新系统中因为客户端代码可能非常强大,准备引入 jQuery 框架来简化开发,便学了一些。于是我就想,能不能通过 jQuery 来解决呢?
首先,我给出了下面这个简单的页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>福州一中 学校音乐征集</title>
<link rel="stylesheet" href="" id="theme" type="text/css" media="all" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="theme.js"></script>
<style type="text/css">
html, body { height: 100%; width: 100%; }
</style>
</head>
<body>
Hello world!
</body>
</html> |
然后我开始用了一段 jQuery 手册里的某段示例代码:
1
2
3
| $('<link rel="stylesheet" href="' +
(t++ & 1) + '.css" id="theme" type="text/css" media="all" />')
.appendTo('head'); |
成功了,不过查看处理后的代码,发现大量冗余代码出现在 head 尾部……又查了查,发现了 jQuery 里面的另外一个好用的函数,于是上面代码就改为:
1
2
3
| $('<link rel="stylesheet" href="' +
(t++ & 1) + '.css" id="theme" type="text/css" media="all" />')
.replaceAll("#theme"); |
没有冗余代码出现,而且 IE6 都可以正常使用!jQuery 的兼容性果然超群……
然后我们想,这样每次都要重建标签,会不会很慢呢?如果能直接改属性或许不错~再查查,我们发现下面方法:
1
| $("#theme").attr({ href: (t++ & 1) + '.css' }); |
又简洁看过去又高效~再试试 IE6,仍然没有问题哦~
Read the rest of this entry »
< CSS,jQuery >
今天 Javran 发来短信给了一个短小的论年判断代码,并且问我是否认为有更简单的表达。下面是他最初给的代码:
1
| return ((y & 3 != 0) ^ (y % 100 == 0) ^ (y % 400 != 0)); |
一切的探究就从这个代码开始了。
Read the rest of this entry »
< C/C++/C#,Javran,优化 >
说实话,本来 CHM 的查看器很早以前就不是个问题了,但由于不记得到底哪个才是最好用的(最没有乱码的),每次都要把知道的查看器一个一个试过去,于是今天我就想把它记下来,以后直接翻我自己的日志就可以了……
目前为止试用的最好用的是:chmsee。
gnochm 在我的使用中,从索引打开显示正常,但一旦点内部链接跳转就出现乱码。至于网络上看到的 KDE 下的 kchmviewer 我就更无语了,只要是文件地址中有中文,点连接就不正常了,看来也是编码没做好。
另外,chmsee 在 ubuntu-tweak 的 PPA 列表上有,可以更新到更新的版本。更新的版本上面允许全屏,在我这个10寸的上网本上看的可爽了~当然,如果能把那个标签也去掉就更好了~
此外,这个版本(还是这个软件?)会把 chm 解压到 ~/.chmsee/bookshelf 内。不过我心疼我的 SSD,于是就想把那个目录改到 tmpfs 的 /tmp 下,但却发现那个显示解压地址的框框是不让改的,只是给你看看逗你玩罢了……如果这是在 Windows 下,特别是在非 NTFS 文件系统下,这一切就只好作罢了。但 Linux 不同,我们有符号链接!
1
2
| rm -r ~/.chmsee/bookshelf
ln -s /tmp ~/.chmsee/bookshelf |
解决问题。
以后 chmsee 的临时文件就全部去 tmpfs 了,应该可以有一点效率提升吧?至少不会对我的 SSD 有影响……
< CHM,SSD,Ubuntu >
今天看了 LinuxToy 上推荐的《Arch Linux 安装指南》,看到其中关于分区的部分,我突然想写篇文章来讨论一下 Linux 中应该怎么分区、应该怎么选文件系统、应该怎么配置才会比较不错。
Read the rest of this entry »
< Linux,分区 >
这个问题很早就有了,一直没解决,而且也不知道很多人所说的“reset”命令,每次都是关掉重开。最近几天因为编辑新首页的缘故,实在不满于这个问题,于是便想办法解决了,在这里写出来,给大家也给自己以后做个参考。
网上有很多诡异的做法,其中最诡异的莫过于在默认标题前后加上空格,而且很多人称这很有效,但我试了却没有用。找了半天,发现一个帖子有一个比较奇特的解决方法:vim编辑退出后提示符乱码解决 – LinuxSir.Org
其中提到了重设vim连接到的程序。我根据man手册里vim相关的命令给出下面几个命令:
1
2
3
4
| sudo update-alternatives --config vim
sudo update-alternatives --config vi
sudo update-alternatives --config ex
sudo update-alternatives --config view |
每个命令中都选择“/usr/bin/vim.basic”,结果就可以了……
看来是gvim的问题。当然,如果从来不用,直接
1
| sudo apt-get remove vim-gnome |
或许是最直接简便的方案~
< Ubuntu,vim >
Linux 会死机么?我可以很肯定地说,会!如何?很简单,我的上一篇日志就介绍了一种方法~要让 Linux 死机很容易,但难的是在死机以后如何安全的让他摆脱死机状态。
Linux 死机有很多种情况,最常见的是系统负载过高导致的。如上次介绍的 fork 炸弹就是这个原理,此外还可以运行内存耗用极大的程序(如虚拟机),也会迅速提升系统负载。由于系统负载过高导致的卡死,一定是解决的越快越好!此时必须记住的是,不能再试图依赖任何图形界面的东西,如 Gnome 的系统监视器(这是我从 Windows 遗留下来的愚昧习惯……),这只会继续加重这种卡死的局面。那怎么办?
Read the rest of this entry »
< Linux,死机 >
众所周知,Linux 的权限控制虽然很简单,但却十分严格和有效的。(和 Windows 复杂却没用的权限控制形成鲜明对比……)由于最近编写测评机,希望利用 Linux 的高安全性做运行级恶意代码防护,因此就顺带地研究了一下 Linux 的权限控制。经过这次探秘,我对 Linux 的权限有了更新的认识,确实是一个很强大的东西啊!
由于本人的能力有限,文章中的不足和谬误也请大家多多指教!
Read the rest of this entry »
< Linux,安全 >
我一开始为 Python 的强大和简洁所震撼,看了些 Python 的教程,学了不少东西。前面那些探索就以后再写吧……今天先讲讲今天知道的东西。
在探索到 Python 函数的参数传递的时候,我不禁赞叹 Python 灵活的参数设计,但慢慢的,开始迷惑与传递参数的修改和返回。
众所周知,在 C++ 中传递参数分为传值和传引用两种,但 Python 没有,那到底传进去的东西,修改一下,能不能传出来呢?这是一个很奇怪和让人费解的问题,不是么?在查阅了一些资料后,对 Python 关于变量、类型和引用的一些基本方式有了一些了解,进而基于这种理解并结合实验,了解了参数传递的奥妙。
Read the rest of this entry »
< Python >
很久没写日志了,前段时间本来想写一个安装 CoreAVC for Linux 的,结果它未能成功拯救我的福音战士新剧场版1080P,于是就放下了……
这次由于对 Scribes 测试版 bug 重重的不满和随时可能丢失修改的担忧,在看了一部分《开源世界旅行手册》后,毅然决定试一试传说中的 vim。
Read the rest of this entry »
< Linux,Ubuntu,vim >
Blitz 是为 PHP 设计的一个高效模板系统,关于这个模板系统的高效程度和更多内容参见其英文主页。因为安装这个还是比较麻烦的,上次安装过这次又忘记了怎么做……
非常无奈地,这个程序不仅没有进入 Ubuntu 的源,而且也没有看到编译好的 deb 包,所以首先,我先从 SourceForge 上下载了它的源代码。然后开始安装。
Read the rest of this entry »
< PHP >
Comments