函数调用

DOM 事件模型

大城市里の小女人 提交于 2020-02-02 05:56:53
事件 HTML元素事件是浏览器内在自动产生的,当有事件发生时html元素会向外界(这里主要指元素事件的订阅者)发出各种事件,如click,onmouseover,onmouseout等等。 DOM事件流 DOM(文档对象模型)结构是一个树型结构,当一个HTML元素产生一个事件时,该事件会在元素结点与根结点之间的路径传播,路径所经过的结点都会收到该事件,这个传播过程可称为DOM事件流。 主流浏览器的事件模型 早在2004前在HTML元素事件的订阅,发送,传播,处理模型上各浏览器实现并不一致,直到DOM Level3中规定后,多数主流浏览器才陆陆续续支持DOM标准的事件处理模型 — 捕获型与冒泡型。 目前除IE浏览器外,其它主流的Firefox, Opera, Safari都支持标准的DOM事件处理模型。IE仍然使用自己的模型,即冒泡型,它模型的一部份被DOM采用,这点对于开发者来说也是有好处的,只使用DOM标准,IE都共有的事件处理方式才能有效的跨浏览器。 冒泡型事件(Bubbling) 这是IE浏览器对事件模型的实现,也是最容易理解的,至少笔者觉得比较符合实际的。冒泡,顾名思义,事件像个水中的气泡一样一直往上冒,直到顶端。从DOM树型结构上理解,就是事件由叶子结点沿祖先结点一直向上传递直到根结点

Php 基本语法

拟墨画扇 提交于 2020-02-02 03:46:59
php基本语法 1. 四种不同的开始结束标记 只有<?php ?>、<script language="php"></script>两个总是可用,剩下的<? ?>、<% %>需要在php.ini中配置。即分别开启php.ini中的short-open-tag和asp-tags即可,默认情况下,它们被禁用,而且移植性较差,不推荐使用。 2. 指令分隔符“分号” 末尾的php代码段后面的“;”也可以不要,当使用输出缓冲和include()或者require()省略会更好。 3. 注释 书写恰当的注释是一种良好的习惯。php注释包括多行注释“/* */”,单行注释“//”与“#”,多行注释之内不能嵌套另一个多行注释,其他情况随意搭配都可。 4. 空行 空行可以展示代码层次的美感。比如一个源文件的两个代码片段使用两个空行,两个类的声明之间也是用两个空行。比如,两个函数声明之间用一个空行,函数内局部变量与第一条语句之间用一个空行,块注释或单行注释之前还有一个函数内的两个逻辑代码段之间都是用一个空行。运用空格的情况有,参数列表的逗号后面空格,运算符与操作数之间,for语句表达式逗号后面等。 5.变量 php最基本的存储单元是变量和常量,可以存储不同类型的数据。由于它是弱类型语言,变量的数据类型由上下文或者运行时决定。 5.1 变量声明 “$”后跟变量名,并用“=”赋值,当第一次给一个变量赋值

session放入缓存(redis)、DB

情到浓时终转凉″ 提交于 2020-02-02 03:22:40
为什么要把SESSION保存在缓存   就php来说,语言本身支持的session是以文件的方式保存到磁盘文件中,保存在指定的文件夹中,保存的路径可以在配置文件中设置或者在程序中使用函数session_save_path()进行设置,但是这么做有弊端, 第一就是保存到文件系统中,效率低,只要有用到session就会从好多个文件中查找指定的sessionid,效率很低。 第二就是当用到多台服务器的时候可能会出现,session丢失问题(其实是保存在了其他服务器上)。   当然了,保存在缓存中可以解决上面的问题,如果使用php本身的session函数,可以使用session_set_save_handler()函数很方便的对session的处理过程进行重新控制。如果不用php的session系列函数,可以自己编写个类似的session函数,也是可以的,我现在做的这个项目就是这样,会根据用户的mid、登录时间进行求hash作为sessionId,每次请求的时候都必须加上sessionId才算合法(第一次登录的时候是不需要的,这个时候会创建sessionId,返回给客户端),这么做也很方便、简洁高效的。当然了,我这篇文章主要说的是在php自身的SESSION中”做做手脚”。 SESSION保存在缓存中   php将缓存保存到redis中,可以使用配置文件,对session的处理和保存做修改

2.8函数基础

孤街醉人 提交于 2020-02-02 02:45:04
函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓 函数 ,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用 函数的使用包含两个步骤: 定义函数 —— 封装 独立的功能 调用函数 —— 享受 封装 的成果 函数的作用 ,在开发程序时,使用函数可以提高编写的效率以及代码的 重用 演练步骤 新建 04_函数 项目 复制之前完成的 乘法表 文件 修改文件,增加函数定义 multiple_table(): 新建另外一个文件,使用 import 导入并且调用函数 02. 函数基本使用 2.1 函数的定义 定义函数的格式如下: ```python def 函数名(): 函数封装的代码 …… ``` def 是英文 define 的缩写 函数名称 应该能够表达 函数封装代码 的功能,方便后续的调用 函数名称 的命名应该 符合 标识符的命名规则 可以由 字母 、 下划线 和 数字 组成 不能以数字开头 不能与关键字重名 2.2 函数调用 调用函数很简单的,通过 函数名() 即可完成对函数的调用 2.3 第一个函数演练 需求 1. 编写一个打招呼 say_hello 的函数,封装三行打招呼的代码 2. 在函数下方调用打招呼的代码 ```python name = "小明"

C++虚函数表剖析

只谈情不闲聊 提交于 2020-02-01 16:47:14
关键词:虚函数,虚表,虚表指针,动态绑定,多态 一、概述 为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。 二、类的虚表 每个包含了虚函数的类都包含一个虚表。 我们知道,当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说,一个类继承了包含虚函数的基类,那么这个类也拥有自己的虚表。 我们来看以下的代码。类A包含虚函数vfunc1,vfunc2,由于类A包含虚函数,故类A拥有一个虚表。 class A { public: virtual void vfunc1(); virtual void vfunc2(); void func1(); void func2(); private: int m_data1, m_data2; }; 类A的虚表如图1所示。 图1:类A的虚表示意图 虚表是一个指针数组,其元素是虚函数的指针,每个元素对应一个虚函数的函数指针。需要指出的是,普通的函数即非虚函数,其调用并不需要经过虚表,所以虚表的元素并不包括普通函数的函数指针。 虚表内的条目,即虚函数指针的赋值发生在编译器的编译阶段,也就是说在代码的编译阶段,虚表就可以构造出来了。 三、虚表指针 虚表是属于类的,而不是属于某个具体的对象

IOS音视频(四十四)AVFoundation 之 Audio Queue Services

点点圈 提交于 2020-02-01 13:21:03
IOS音视频(四十四)AVFoundation 之 Audio Queue Services 1. Audio Queue Services简介 1.1 音频队列 1.1.1 音频队列架构 1.1.2 用于录音的音频队列 1.1.3 用于回放的音频队列 1. Audio Queue Services简介 Audio Queue Services,这是Core Audio的Audio Toolbox框架中的一个C编程接口。 那么什么是音频队列服务呢? Audio Queue Services提供了一种简单、低开销的方式来在iOS和Mac OS X中录制和播放音频。 音频队列服务让您记录和播放音频的任何下列格式: 线性PCM。 您正在开发的Apple平台上原生支持的任何压缩格式。 用户已安装编解码器的任何其他格式。 音频队列服务是高级的。它允许您的应用程序在不了解硬件接口的情况下使用硬件记录和回放设备(如麦克风和扬声器)。它还允许您在不了解编解码器工作原理的情况下使用复杂的编解码器。 同时,音频队列服务支持一些高级功能。它提供了细粒度的定时控制,以支持预定的回放和同步。您可以使用它来同步多个音频队列的回放,并同步音频和视频。 注意:Audio Queue Services提供的特性与之前Mac OS x中的声音管理器提供的特性类似。声音管理器在Mac OS X v10.5中是不支持的

json和jsonp

假如想象 提交于 2020-02-01 10:04:41
前言: 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。 但到目前为止最被推崇或者说首选的方案还是用JSON来传数据,靠JSONP来跨域。而这就是本文将要讲述的内容。 JSON和JSONP虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的情报传递给自己同志时使用的接头方式。看到没?一个是描述信息的格式,一个是信息传递双方约定的方法。 既然随便聊聊,那我们就不再采用教条的方式来讲述,而是把关注重心放在帮助开发人员理解是否应当选择使用以及如何使用上。 什么是JSON? 前面简单说了一下,JSON是一种基于文本的数据交换方式,或者叫做数据描述格式,你是否该选用他首先肯定要关注它所拥有的优点。 JSON的优点: 1、基于纯文本,跨平台传递极其简单; 2、Javascript原生支持,后台语言几乎全部支持; 3、轻量级数据格式,占用字符数量极少,特别适合互联网传递; 4、可读性较强

csapp-系统栈和ROP技术

无人久伴 提交于 2020-02-01 05:19:47
前言:总结的都是基于我在计算机系统学习中的相对个人重难点。 栈帧 栈帧的内部模拟图片( 来源于百度图片 ): 图上所述结构一步一步来看: 返回地址以上部分的参数是存储在调用函数p中的栈帧中的变量值。而这个值是为下一步被调函数Q传参做准备的。需要注意的是,存在该部分的条件是因为寄存器中最多传递六个整型(即整型和指针参数)。而当传入的个数大于6时,超过六的部分参数,需要直接存储在栈帧中,并且是倒着顺序存入栈帧中(由栈顶到栈底顺序)。 补充栈上的局部存储: 1:寄存器不够存放所有的本地数据; 2:对某一个局部变量使用地址运算符“&”,必须为它产生一个地址; 3:某些局部变量数数组或者结构时。 引用《深入了解计算机系统》书上的两个例子: 第一个: 在long caller函数调用被调函数swap之前,开辟空间,将arg1和arg2先放入栈中,并且rsp存着&arg1,rsp+8存着&arg2,然后再将返回地址放入栈中,进行调用函数swap_add。 第二个 发现传入的参数的个数是8个,并且存在几个参数传入的地址,那么我们首先选出地址引用的&x1,&x2,&x3,&x4和第七个x4与第八个参数&x4.那么如上图根据“对某一个局部变量使用地址运算符“&”,必须为它产生一个地址”原则,为x1,x2,x3,x4按顺序产生地址,然后第七个和第八个参数就按照倒序的顺序存入即可x4存在rsp,

JSON和JSONP详解

徘徊边缘 提交于 2020-02-01 02:58:38
什么是JSON   JSON是一种基于文本的数据交换方式,或者叫做数据描述格式,你是否该选用他首先肯定要关注它所拥有的优点。 JSON的优点:   1、基于纯文本,跨平台传递极其简单;   2、Javascript原生支持,后台语言几乎全部支持;   3、轻量级数据格式,占用字符数量极少,特别适合互联网传递;   4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;   5、容易编写和解析,当然前提是你要知道数据结构;   JSON的缺点当然也有,但在作者看来实在是无关紧要的东西,所以不再单独说明。 JSON的格式或者叫规则:   JSON能够以非常简单的方式来描述数据结构,XML能做的它都能做,因此在跨平台方面两者完全不分伯仲。   1、JSON只有两种数据类型描述符,大括号{}和方括号[],其余英文冒号:是映射符,英文逗号,是分隔符,英文双引号""是定义符。   2、大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)。   3、上述两种集合中若有多个子项,则通过英文逗号,进行分隔。   4、键值对以英文冒号:进行分隔,并且建议键名都加上英文双引号”",以便于不同语言的解析。   5、JSON内部常用数据类型无非就是字符串、数字、布尔

JSON和JSONP (含jQuery实例)(share)

夙愿已清 提交于 2020-02-01 02:53:59
来源: http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html 前言: 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。 但到目前为止最被推崇或者说首选的方案还是用JSON来传数据,靠JSONP来跨域。而这就是本文将要讲述的内容。 JSON和JSONP虽然只有一个字母的差别,但其实他们根本不是一回事儿: JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议 。我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的情报传递给自己同志时使用的接头方式。看到没?一个是描述信息的格式,一个是信息传递双方约定的方法。 什么是JSON 前面简单说了一下,JSON是一种基于文本的数据交换方式,或者叫做数据描述格式。 JSON的优点: 1、基于纯文本,跨平台传递极其简单; 2、Javascript原生支持,后台语言几乎全部支持; 3、轻量级数据格式,占用字符数量极少,特别适合互联网传递; 4、可读性较强