1.前台页面一般不用gridview datalist treeview updatepanel 等控件,因为他们会生成很多我不想要的代码。而且嵌套一大堆table
2.用repeater+div+css+ul li已经足够我做很多东西了。
3.发布后的页面,可以把一些空行和换行 和一些不必要的空格去掉,尽量减少aspx页面的容量。提高加载速度。
4.在页面的title写上本页内容的关键字,这样便于搜索引擎收录。
5.做好优化,你搜索关键字的时候,你不一定会搜索到你的页面,这个页面还需要一定的点击量才会被搜索到。
只有不断提高页面点击量,才会容易排到搜索结果前面提高alexa排名,这也是那些病毒制造者和广告联盟的市场。
6.相同的关键字,如果你页面的浏览量降低了,搜索出现的位置也会降低。
7.生成HTML静态页面非常便于搜索引擎收录,而且可以提高并发访问速度。
8.css文件,不要分太多行,尽量减少换行。
9.tab 菜单 和滑动门 相册 商品图片浏览 等效果,不必要用到jquery这么庞大的东西。
没必要为了一些圆角效果写和引用一大堆东西。自己却不知所云。
10.尽量将所有大图片生成一份缩略图,显示的时候尽量用缩略图。到点击查看的时候才显示大图。提高浏览速度。 ......
刚刚 看到这么一个问题,这里也做个标记:http://topic.csdn.net/u/20080411/14/7b0f9da5-0413-4149-91e9-72c3df3018a3.html?seed=327251592
第一种方式:
//在Visual Studio 2008中调试通过
testPop_Page.aspx:主页面ASPX代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" >
function Pop()
{
var result = showModalDialog('testPop_downs.aspx', 'subpage', 'dialogWidth:800px;dialogHeight:600px;center:yes;help:no;resizable:yes;status:no'); //打开模态子窗体,并获取返回值
document.getElementById("txt_id").value=result.split("'")[0]; //返回值分别赋值给相关文本框
document.getElementById("txt_name").value=result. ......
刚刚 看到这么一个问题,这里也做个标记:http://topic.csdn.net/u/20080411/14/7b0f9da5-0413-4149-91e9-72c3df3018a3.html?seed=327251592
第一种方式:
//在Visual Studio 2008中调试通过
testPop_Page.aspx:主页面ASPX代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" >
function Pop()
{
var result = showModalDialog('testPop_downs.aspx', 'subpage', 'dialogWidth:800px;dialogHeight:600px;center:yes;help:no;resizable:yes;status:no'); //打开模态子窗体,并获取返回值
document.getElementById("txt_id").value=result.split("'")[0]; //返回值分别赋值给相关文本框
document.getElementById("txt_name").value=result. ......
复制以下内容,保存为 py 后缀的文件,拷贝到wallpaper文件夹,进入文件夹,以python运行,选取xml为壁纸
#!/usr/bin/env python2.6
# -*- coding: utf-8 -*-
# Ubuntu 9.10 dynamic wallpaper maker_Can be used in all the distributions of linux
#
# Auto generate a configuration file which you can use as
# dynamic wallpaper.
#USAGE
#use this dynamic-wall-maker.py by ""[somebody@ubuntu~]$python /path/to/the/dynamic-wall-maker.py /path/to/the/wallpapers_filefolder""
#
#cd
#[wowoto@Archlinux windows7-wallpapers]$ python dynamic-wall-maker.py /path/to/the/wallpapers
#You can set "/path/to/the/wallpapers/dyn-wall.xml" as dynamic wallpaper now,have a good day
#[wowoto@Archlinux windows7-wallpapers]$
# xiaoyang006@gmail.com
# 2009.11
import os
import sys
import optparse
class Printer:
'''Print all kinds of tags.'''
def __init__(self):
self.__indent_format = ' '
&nb ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
所谓“阅兵”就是检阅部队的意思。
Linux
大军(发行版)可谓“散兵游勇”,谈何大阅兵?此言差矣。
Linux
发行版纷繁众多,这是客观事实。能否进行
Linux
大阅兵呢?两年前,
Ubuntu
奠基人
Mark
Shuttleworth
就提出一个大胆的设想:
Debian
和
Ubuntu
的
LTS
(所谓“长期支持”)版本能否使用同一个
Linux
内核版本?如果
Debian
社区开发者同意这样做,
Ubuntuh
社区愿意(出钱、出力)来帮忙。实现了这一步,下面的问题就好办了。
3
月
15
日,
Mark
Shuttleworth
发表博文说:今年,新版本
Debian
6
和
Ubuntu
10.04
(
LTS
)都使用同一个
Linux
内核版本(即
2.6.32
版本)。实际上,最新版本的
RHEL
和
SLES
发行版也使用了这同一个内核版本,而且,最新版本的编译器
GCC
4.4
、
Python
2.6
、
OOo.org
3.2
、
perl
5.1 ......
1. Workqueue
Workqueue的名字就和他的功能一样:需要处理的工作列表和工作的添加删除(貌似没有看到如何删除的)、以及工作的调度执行。
需要处理的工作列表通常都维护在内核对象workqueue_struct里面。系统里面可以有多个workqueue_struct。内核部分的工作添加到了工作队列keventd_wq。而fs/aio.c里面实现了自己的工作队列aio_wq。
workqueue_struct是双向循环链表。里面的单元是work_struct。
驱动接口:
create_workqueue:创建工作队列结构和内核处理线程。
schedule_work/schedule_delayed_work:调度执行一个具体的任务,执行的任务将会被挂入Linux系统提供的workqueue keventd_wq。请注意,调度执行并不等于立刻执行。而是指示worker_thread在下次处理工作队列的时候执行该工作;
queue_work/queue_delayed_work:调度执行一个指定workqueue中的任务。内核本身提供了一个工作队列keventd_wq。但是,系统里面也可以有其他的工作队列。所以就有了schedule_work和queue_work的区分。
1.1 schedule_wo ......
很久没有写技术博文了,从这里开始我的研究生生涯,转眼就要在职场上养家糊口,生活真的不容易,幸好还有技术相伴为伍。
由于工作的关系,终于接触到linux网络和kernel的编程,总体来说总是一个好的契机。让我能够深入操作系统内核。做过一段时间的用户程序的开发,总是在Windows平台上,终于有机会在linux上做点东西,还是很兴奋的。
首先是一个Hello World的内核程序,然后就是一大堆编译的问题,由于没有接触过Linux所以花费了很多时间在这上面。
1) hellokernel.c 我的编译环境是在虚拟的Linux Redhat 5.0 上编译的
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL"); //这个宏的意思我还是不太明白,直接抄了过来
static int hello_init(void)
{
printk(KERN_ALERT"Hello,world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT"Goodby,cruel world\n");
}
module_init(hello_init); //当内核模块被装载的时候调用hello_init函数
module_exit(hello_exit); //当内核模块被卸载的时候调用hello_exit函数
2)源代码 ......