用Python给Linux编写守护进程

守护进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控。此类程序会被以进程的形式初始化。通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程层级中直接位于init之下。守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程调用fork,然后使其父进程立即终止,使得这个子进程能在init下运行。–维基百科

…阅读更多>>

深复制和浅复制

在面向对象的编程中,经常会遇到对象的克隆,如果不理解深复制和浅复制(深拷贝和浅拷贝)的概念,你的代码就可能出现一些问题。

我们知道,对象是由一系列key,value的元素组成,不同的编程语言中,key,value的数据类型划分不太一样,有些语言所有数据都是对象,如python,有些则有其它的划分。但是基于数据或者对象的存储方式,基本可以把数据类型划分为值类型和引用类型。一般值类型的数据是存储在栈内存中,引用类型的数据是存放在堆内存中,如下图:
…阅读更多>>

HTTP代理和HTTPS代理的区别

一些浏览器在设置代理的时候,有多个选项,包括HTTP代理,HTTPS代理,FTP代理,SOCKS代理等。它们之间有什么区别呢?为了寻找它们之间的区别,我专门做了个实验,用nginx搭建了HTTP和HTTPS代理服务器,并在chrome上设置不同的代理浏览网站。
…阅读更多>>

一个window.history.go(-1)||window.close()产生的问题

一个项目的需求:前台的留言表单中基于用户的输入,有两种不同情况的提交方式,一种是当前页面,另外一种是弹出另外一个页面,通过JS控制表单的target属性即可实现。为了保证良好的客户体验,通过当前页面跳转提交成功后,会返回上一页,通过弹出方式提交的结果会在展示之后关闭。于是我想到了最简单的方式,在目标页面加上了”<script>window.history.go(-1)||window.close()</script>”这一段代码,经过简单测试,发现效果良好,功能上完全能够满足要求。
…阅读更多>>

事件捕获和事件冒泡的区别

事件是javascript的客户端编程中很常见,常见的事件有click,mouseover,mouseenter,keyup,focus等只要接触到事件,相信事件冒泡和事件捕获这两个概念都或多或少的听说过,那么它们到底有什么区别呢?先看一下事件冒泡:

当事件在某一DOM元素被触发时,例如用户在客户名字节点上点击鼠标,事件将跟随着该节点继承自的各个父节点冒泡穿过整个的DOM节点层次,直到它遇到依附有该事件类型处理器的节点,此时,该事件是onclick。

事件冒泡

事件冒泡

在上一篇文章《HTML中动态生成内容的事件绑定问题》中,我们讲到了事件冒泡这个问题,简单来说,就是子元素绑定的事件,会逐级冒泡到父元素,当它的一个或多个父元素上绑定有相同事件时,相应的事件处理函数会被触发。
…阅读更多>>

HTML中动态生成内容的事件绑定问题

由于实际的需要,有时需要往网页中动态的插入HTML内容,并在插入的节点中绑定事件处理函数。我们知道,用Javascript向HTML文档中插入内容,有两种方法,一种是在写HTML代码写入JS,然后插入到文档中;另外一种是通过ajax的方式,从服务器获取数据,然后用js把获取的数据经过处理后插入文档中;两种方法各有特点,本文将分析新插入到文档中的元素的事件绑定问题,并假定新插入的对象不做内联的事件绑定(即不用类似 <a onclick=””>的形式)。所有的示例将会用到jQuery和原生Javascript。
…阅读更多>>