0%

2017年8月16日 上午8:18


图1w3cschool的html5的知识点

其中有一些我以前不知道的知识

  1. Html5元素,包括了语义标签、结构标签、属性等
  2. 其中的表单属性的增加我觉得是最有用的
  3. 还涉及到了对Internet Explorer 8 以及更早的版本,不允许对未知元素添加样式。的问题解决HTML5 浏览器支持
  4. Html几个比较少用,但是有意思的新特性
    1. 地理定位:就是专门有一个内置对象来获取,操作简单
    2. 拖放:本质就是依靠js实现DOM节点的转移,只不过H5本身就把js给你封装好了,还给你写好了触发事件
    3. Web存储:分成两类
      1. window.localStorage - 存储没有截止日期的数据
      2. window.sessionStorage - 针对一个 session 来存储数据(当关闭浏览器标签页时数据会丢失
      3. 就像一个键值对数据库,能够直接通过给定了内置对象直接操作,也很简单
    4. 应用缓存:
      1. 就是脱机后,还能通过事先下好的缓存来访问
      2. 程序员放在html中就行
      3. 但是一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使您修改了服务器上的文件。为了确保浏览器更新缓存,您需要更新 manifest 文件
    5. web workers:
      1. HTML中的有了多线程
      2. 一个线程是主页面,一个线程是js文件
      3. 主页面有类似android中的放置好的监听函数,js文件中通过特定的函数来给主页面传值,并且唤醒监听执行
    6. SSE
      1. 依靠多线程实现
      2. 与上一个结构完全相同,把js文件换成php文件就行了
    7. 总结:
      1. 我觉的这就像android一模一样了,HTML也有多线程、数据库、定位、触发….
        1. Android的功能的实现过程简单来说就是内置继承类、通过内置的对象来实现
        2. HTML5功能的实现也是通过内置对象,这种简单直观的方式操作
        3. 以后编HTML5程序也可以使用android的那套思维了
        4. 而且,html中的标签和android中的页面组件的id,是对应的
        5. 操作起来同样是先找到标签(id),生成对象,然后在js(java)这种逻辑层去控制程序的执行过程
        6. Android中关键的触发,html也同样有
      2. 这与先前HTML只能写写页面,能看,但不能操作的这种认识有很大的不同
    8. Html5真的从一个文本操作,变成了编程操作

我的问题(会用,也要明白他的原理)

  1. 当我们浏览器访问一个服务器中的页面的之后,即使是动态页面,也是服务器的gcc把动态内容处理好了,然后输出静态文件给了浏览器
  2. 但是,上面几个功能的实现,如果仅仅是这样服务器—>浏览器单向的过程是不可能实现的!!!
  3. 我对服务器和浏览器这一交互过程的了解几乎为零

其他

  1. chrome safari -webkit-
  2. Firefox -moz-
  3. Opera -o-

2017年8月14日 下午2:36

超链接的两种用法

  1. 超连接
  2. 1
    2
    <a id="top"></a>
    <a href="#top"> </a>

特殊符号

1
2
3
4
&nbsp   空格
&copy 版权符
&lt <
&rt >

表格

1
2
3
4
5
6
7
8
9
10
11
12
13
<div align="">
<table style="" bgcolor="" border="">
<caption>aaa</caption>
<tr style="" align="">
<th style=""></th>
<th style=""></th>
</tr>
<tr style=“” align="">
<td align="center" rowspan="" >a</td>
<td colspan=""></td>
</tr>
</table>
</div>

注意

  1. 表头caption
  2. 位置:
    1. align属性
    2. style =“width:” 属性
  3. rowspan colspan
    1. 其实就是一个代替多个
    2. 原则:每行每列的个数bubian
  4. 表格中的每个标签都可设置style属性

表单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form action="" method="" enctype=""><!--上传流文建-->
<input type="radio" checked="checked" name="sex">
<input type="radio" name="sex">

<input type="checkbox" name="hobby"><br>
<input type="file" name="file"><br>
<input type="password" name="password"><br>
<input type="text" name="accout"><br>
<textarea cols="" rows=""></textarea><br>
<select name="">
<option value="1"></option>
<option value="2" selected="selected"></option>
<option value="3"></option>
</select><br>
<button>普通按钮</button>
<input type="submit" name="" value="提交按钮">
<input type="reset" name="" value="重置按钮"><br>
<input type="image" name="" src=""> <br><!-- 有提交表单的能力 不被button控制 -->
<input type="hidden" name="" value=""> <!-- 提交value属性值 -->

注意:

  1. Radio 一定要设置相同的name
  2. Name的值使用来提交是作为key值的
  3. get和post都有请求体
  4. 超链接是get请求
  5. 默认值添加方式
    1. value
    2. placeholder

框架标签

常用于映入独立资源、重复资源或者控制单元资源

1
2
3
<frameset>
<frame>
<iframe>

标签的target属性:

  1. 用来指定当前src中所指向的内容,在哪个框架中显示
  2. target = 框架的name属性

Html5的一些文字了解

目的:

不用搭配那么多的css 和js
减少对库的依赖性

html改进

  1. 语义特性
  2. 本地存储
  3. 设备兼容
  4. 连接特性
  5. 网页多媒体
  6. 三维,图形及特效特效
  7. 性能集成特效

缺点

  1. 安全
  2. 完善性
  3. 技术门槛高
  4. 性能
  5. 兼容性 不是所有的浏览器都用html

改变

  1. 语法规则
  2. 标签小写
  3. 属性值
  4. 删标签
  5. 增标签
    1. 结构性标签
    2. 块级标签
    3. 行内标签
    4. 多媒体标签
    5. 交互性标签
    6. 表单的新功能
    7. 新增属性
    8. 其他功能
      1. 地理定位 用在移动端
      2. 本地储存
      3. 桌面提醒
      4. 本地数据库 chrome
      5. canvas画布

2017年8月5日 下午4:05

环境:LNMP

解决方法

  1. 参考WordPress上传文件提示”HTTP错误“_LogPress
  2. 在更改媒体大小的前提下 ,对/etc/nginx/nginx.conf添加client_max_body_size 64M;
  3. 重启服务器sudo systemctl reload nginx

小发现:
当我开着vpn连接服务器时,发现慢的要死,关了vpn就一定问题都没了

2017年8月5日 下午3:36

环境(LNMP)

步骤:

  1. 去info.php中查看php.ini文件的位置
  2. 然后连接服务器打开php.ini文件

    注:这里一定要重启php,光重启服务器是不行的
  3. 登陆wordpress,在边栏中选择 外观->编辑->functions.php
  4. 在<?php 后加入
    1
    2
    3
    @ini_set( 'upload_max_size' , '64M' ); 
    @ini_set( 'post_max_size', '64M');
    @ini_set( 'max_execution_time', '300' );
  5. 最后就成功了

附:
重启php-pfmsudo service php7.0-fpm restart

2017年7月18日 上午8:32

对java这门语言的熟悉程度会影响android的学习吗?有多少?

1. 其实,这个问题可以扩展到“**所有语言本身与框架之间**”
2. 我们学习android其实**学的是android的开发者框架,并不是android系统本身**
3. Android的内容包含以下几个部分
    1. 通过设计模式,以**生活化使用为目的**的封装 ,是android对于java的最大的不同
        1. 就好比,java是**钻木取火**,而android直接就有**打火机**了,还是Zippo的!
    2. 针对**环境android studio**同样也是加强版的,有很多的优化功能
    3. 还有一部分是区别于java,android独有的
        1. 生命周期
        2. Xml界面布置
        3. source资源 资源id
        4. 一些手机硬件的控制(eg:传感器)
        5. **关于这部分我说不清楚个一二三,一定和android操作系统本身相关!**

在今后的学习android过程中,要注意的是

  1. Android整套体系都是按照一定的设计模式来设计
    1. 但是对于使用者来说,你不用去管他咋设计出来的,对你来说就是一个黑盒
    2. 你用管的是
      1. 某个功能对应的黑盒系统,他的使用规范是啥
      2. 这个黑盒的设计者是如何设计他的使用方式?
      3. 一般来说,这黑盒的使用方式都偏向于生活化,方便使用者理解并快速使用
        1. 最好的🌰就是对异步线程的理解
        2. 数据库的操作中,对数据的读就是一个完全的生活化理解就可以解决
        3. 这些都有一个共同的特定,就是一步步的
      4. 但是也要一些封装的就没有那么生活化,让人很难理解
        1. adapter相关的知识
        2. 它具体是如何运作的,怎样找到数据的对应关系的,这我都不知道
        3. 我从例子中看到,“哦,这样能行,我换换数据就算了”
  2. 对于android学习的一些高要求
    1. 别人都给你封装好了,没有看源码的前提下,你只是一个代码的搬运工
    2. 因为:别人封装的太好了,在别人封装完成之后,其实使用方式已经定了80%
    3. 剩下的20%,很多都是各种各样的数据
    4. 好处:对于发明者,框架就是为了让使用的人方便,越好入门越好。
    5. 坏处:对于使用者,你除了会使用别人的工具解决了你的问题外,其实没有实质的能力提升
    6. 只有去看他的源码才能了解的一些知识
      1. 比如说去看recycleView adapter等等
      2. 然后你就可以将你从中学到的设计方法用到自己平时的编程中
      3. 就像我的那个权限系统一样

随着我能力的提升,现在看我做的运动app,真的简单的很多
原因有一下几点

  1. 认识到看源码的第一步一定是了解他的业务流
  2. Java语言的基本功有明显的提升
  3. 刚刚把书本复习的一遍,记忆还比较清晰

2017年7月18日 下午7:54

首先要端正态度:

  1. 不能为了学习而学习
  2. 在学的过程中要有新的追求
    1. 边复习边联系实际提出问题

操作系统这么课其实就像是操作系统这个巨大程序的说明书
这会造成一个问题,就是说了你也不懂,或者理解的不对

一份好的项目记录笔记

  1. 清晰业务流,说明需求
  2. 要考虑的问题有哪些方面
  3. 提出的问题
  4. 每种问题的解决方式
    1. 可能是思路上的解决方案
    2. 也可能是编码上的解决方案
  5. 要注意的地方

2017年7月17日 下午12:32

安装起来就像官网说的,其实很简单。

但是我根据我的具体情况还是遇到了两个问题:

  1. 主页的index.php进入后直接跳出到了wordpress文件夹下
  2. 无法自动安装

问题一解决方法:

  1. 这个问题其实困扰了我好几个小时,因为我不知道到底哪里错了,而且网上是没有我这个问题的解决方法的。我都快疯了!
  2. 最后我尝试着修改了一些我本身就在nginx中安装好的default文件,最后竟然莫名其妙的好了!
  3. 总结:
    1. 这个问题涉及到了服务器的知识,我对服务器知之甚少,所以面对这样的一个问题,根本无法根据自己的知识去解决,而且网上没有解决方案
    2. 这样的问题真是一种心灵的摧残。
    3. 针对这样的情况,我首先应该提高自己的及时学习能力,暂停解决问题
    4. 去看一些文档,尤其是一些官方文档,官方文档有很多是特别长的
    5. 如果这时候还是想着快速解决问题的话,就会造成无法专心的去看文档,适得其反

问题二的解决方法:

  1. 提示让输入FTP
  2. 打开WordPress网站根目录,找到wp-config.php文件并打开
  3. 在其中添加以下代码:
    1
    2
    3
    define('FS_METHOD', 'direct');
    define('FS_CHMOD_DIR', 0777);
    define('FS_CHMOD_FILE', 0777);
  4. 设置完上面的后,还会说“没有操作文件夹的权限
  5. 解决wordpress下载插件 安装失败 无法创建目录问题
  6. 注意:
    1. sudo chown -R www-data wordpress
    2. 这里要用sudo,否则会提醒:
    3. chown: changing ownership of 'wordpress/wp-admin/network/site-new.php': Operation not permitted
  7. 总结:
    1. 这个问题涉及到了我不了解的东西
      1. 用户组是个什么东西
    2. 我也只会照葫芦画瓢,无能为力了

2017年7月17日 上午11:00

参考:Ubuntu Nginx中搭建php环境 - 简书
目的:兼容wordpress

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /var/www;
index index.html index.htm index.php;

# Make site accessible from http://localhost/
server_name localhost;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}

location ~ \.php/ {
if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_NAME $1;
fastcgi_param PATH_INFO $2;
fastcgi_param SCRIPT_FILENAME $document_root$1;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

2017年7月17日 上午10:01

来源:nginx配置location总结及rewrite规则写法 - Sean’s Notes - SegmentFault

总结:

  1. 这篇文章主要的作用:nginx是如何处理得到的URL地址的?
  2. 对这篇文章需要了解正则表达式。
  3. 其他的我总结不出来啥了,一是我对这个不熟悉,而是这篇文章说的的确很清晰!
  4. 文中有🌰,能很大的帮助理解

摘抄:

  1. 已=开头表示精确匹配
    如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。
    ^~ 开头表示uri以某个常规字符串开头,不是正则匹配
    ~ 开头表示区分大小写的正则匹配;
    ~* 开头表示不区分大小写的正则匹配
    / 通用匹配, 如果没有其它匹配,任何请求都会匹配到
  2. rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用,例如 http://seanlook.com/a/we/index.php?id=1&u=str 只对awe/index.php重写。
  3. 表明看rewrite和location功能有点像,都能实现跳转,主要区别在于rewrite是在同一域名内更改获取资源的路径,而location是对一类路径做控制访问或反向代理,可以proxy_pass到其他机器
  4. if判断指令
    语法为if(condition){…},对给定的条件condition进行判断。如果为真,大括号内的rewrite指令将被执行,if条件(conditon)可以是如下任何内容:
    当表达式只是一个变量时,如果值为空或任何以0开头的字符串都会当做false
    直接比较变量和内容时,使用=或!=
    正则表达式匹配,*不区分大小写的匹配,!~区分大小写的不匹配
  5. -f和!-f用来判断是否存在文件

-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
6. 全局变量
下面是可以用作if判断的全局变量

$args : 这个变量等于请求行中的参数,同$query_string
$content_length : 请求头中的Content-length字段。
$content_type : 请求头中的Content-Type字段。
$document_root : 当前请求在root指令中指定的值。
$host : 请求主机头字段,否则为服务器名称。
$http_user_agent : 客户端agent信息
$http_cookie : 客户端cookie信息
$limit_rate : 这个变量可以限制连接速率。
$request_method : 客户端请求的动作,通常为GET或POST。
$remote_addr : 客户端的IP地址。
$remote_port : 客户端的端口。
$remote_user : 已经经过Auth Basic Module验证的用户名。
$request_filename : 当前请求的文件路径,由root或alias指令与URI请求生成。
$scheme : HTTP方法(如http,https)。
$server_protocol : 请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
$server_addr : 服务器地址,在完成一次系统调用后可以确定这个值。
$server_name : 服务器名称。
$server_port : 请求到达服务器的端口号。
$request_uri : 包含请求参数的原始URI,不包含主机名,如:”_foo_bar.php?arg=baz”。
$uri : 不带请求参数的当前URI,$uri不包含主机名,如”_foo_bar.html”。
$document_uri : 与$uri相同。

2017年7月17日 上午8:31

基本语法

  在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。
  正则表达式的形式一般如下:
  love
  其中位于”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“_”定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式
  较为常用的元字符包括: “+”, “”,以及 “?”。其中,“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,“”元字符规定其前导字符必须在目标对象中出现零次或连续多次,而“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
  下面,就让我们来看一下正则表达式元字符的具体应用。
  _fo+

  因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。
  eg*
  因为上述正则表达式中包含“”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。
  Wil?
  因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者 “Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。
  除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,
  jim{2,6}
  上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。
  在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。
  \s:用于匹配单个空格符,包括tab键和换行符;
  \S:用于匹配除单个空格符之外的所有字符;
  \d:用于匹配从0到9的数字;
  \w:用于匹配字母,数字或下划线字符;
  \W:用于匹配所有与\w不匹配的字符;
  . :用于匹配除换行符之外的所有字符。
  (说明:我们可以把\s和\S以及\w和\W看作互为逆运算
  下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。
  \s+
  上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。
  \d000
  如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。
  除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符定位符用于规定匹配模式在目标对象中的出现位置。
  较为常用的定位符包括: “^”, “$”, “\b” 以及 “\B”。其中,“^”定位符规定匹配模式必须出现在目标字符串的开头,“$”定位符规定匹配模式必须出现在目标对象的结尾,\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一,而“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符。举例来说:
  ^hell
  因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hell”, “hello”或 “hellhound”开头的字符串相匹配。
  ar$
  因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。
  \bbom
  因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。
  man\b
  因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。
  为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如:
  [A-Z]
  上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
  [a-z]
  上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
  [0-9]
  上述正则表达式将会与从0到9范围内任何一个数字相匹配。
  ([a-z][A-Z][0-9])+
  上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。这里需要提醒用户注意的一点就是可以在正则表达式中使用 “()” 把字符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸如 “abc”等的字符串匹配,因为“abc”中的最后一个字符为字母而非数字。
  如果我们希望在正则表达式中实现类似编程逻辑中的“或”运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符 “|”。例如:
  to|too|2
  上述正则表达式将会与目标对象中的 “to”, “too”, 或 “2” 相匹配。
  正则表达式中还有一个较为常用的运算符,即否定符 “[^]”。与我们前文所介绍的定位符 “^” 不同,否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串。例如:
  [^A-C]
  上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当“^”出现在 “[]”内时就被视做否定运算符;而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。
  最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符“\”。例如:
  _Th\
_
  上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。

总结:

正则表达式由两部分组成

  1. 范围:这些范围就是实现一对多的关键(这里指的是内容长短)
  2. 限定:
    1. 字符串位置限定
    2. 字符串组合关系限定

正则中的“单个字符”——> 表达式中的“一些字符或字符串

范围有以下几种:

  1. 单个字符的重复次数构成的范围
  2. 一些小的常用的集合构成的范围
    1. 空白符/非空白符
    2. 字母,数字,下划线/非 字母,数字,下划线
    3. 数字
      1. 两种
    4. 大写字母
    5. 小写字母

注:这里的范围本身都是针对单个字符,但是可以根据重复的次数,来构成字符串。

字符串的限定

  1. 位置限定
    1. 开头
    2. 结尾
    3. 中间
  2. 组合关系的限定
    1. And 同时满足
    2. or 满足其中之一
    3. 非 相反

注:这里的限定针对的是字符串,而不是单个字符
eg:to|too|2 这里的对象是 to too 2 这三个,而不是于“|”相邻的单个字符