• 等级
  • 29340 访问
  • 75 原创
  • 1 转发
  • 56461 排名
  • 8 评论
  • 39 获赞

在线课程网站项目介绍

简介 edu:education,在线课程网站 主要功能 课程管理:创建课程、添加课时、添加课程资料 用户管理:角色管理、权限分配 个人中心:学习进度、课程收藏、文章收藏 文件管理:上传、下载、删除文件,文件组管理 数据管理:数据备份、恢复 基本架构 Apache/2.4.23 + PHP/5.4.45 + MySQL/5.5.53 前端组件 bootstrap adminlte boots...

2018-09-20 19:56:57

Symfony HttpFoundation使用文档

##1.概述 HttpFoundation组件是在HTTP基础上提供了一个面向对象操作封装。在PHP中,我们通常使用\$_GET,\$_POST,\$_FILES,\$_COOKIE,\$_SESSION,…等全局变量来读取HTTP请求内容(request),使用函数:echo,header(), setcookie(),…**等来生成响应内容(response)。**Symfony HttpFo...

2018-09-20 17:45:35

ES6标准下的ajax封装

首先定义API接口 url:字符串类型,提交的网络地址 data:对象类型,提交的表单数据 type:提交的方法类型:GET或者POST,,默认为GET method:使用的方法, function Ajax(url = '', data = {}, type = 'GET', method = 'fetch'){ // ... } 整理表单数据 如果请求提交的方式为GET,我们就需要将...

2018-09-20 17:18:35

javascript求解快递派送路径优化问题

快递小哥在送快递时,需要考虑优先顺序的问题,在由多个派送点构成的网络中,规划好派送顺序,既省时又省力。因此,最优路线问题就出来了。 如下图所示,我们从A点出发,计划要到B、C、D、E、F五个派送点,最后返回到A点。 从A出发,走过B、C、D、E、F五个点的顺序组合如下图所示,一共有5! = 120种,我们需要在这120种顺序组合中找到最省时省力的结果。 我们可以依次计算120种每个组合情况的耗...

2018-09-20 17:16:15

给家人工作上的一些建议

人上了年纪,除了身体活动上不大方便,大脑也开始转不动了。每次回家,我第一件要做的事情就是检查家人的手机,出现问题即时处理,防止出现什么突发情况打不出去电话而贻误最佳时机。因此,我也希望因为工作不得不使用智能手机的你们,一旦发现手机开始频繁出现死机或者通话出现故障,请不要吝惜钱,及时换一部新手机,一部好手机,或者随着备一部专门用于通话长时待机手机。 中介就是以提供信息服务的工作者,作为一名中介,主要...

2018-09-20 17:13:58

碎念技术

这几天心情很乱,像是丢了魂儿一般,想着出去走走,看看花草,舒缓一下心情,反而越看心越不定。如今自己与当年学习技术时的自己对比,真是判若两人了,也许是年纪大了,身体机能下降了,也许是需要担待的责任和考虑的事情多了,不能再像学生时代的孩子一样,想玩什么就玩什么。 人变了就再也找不回当年的感觉了,总是告诉自己:“让自己忙起来,就没有精力再回忆过去”,可是记忆太深刻,让人难以忘怀。过去的好的,不好的,始终...

2018-09-20 17:13:10

SuperAgent使用文档

本篇文档是参考SuperAgent英文文档翻译整理成的。前段时间,在一个爬虫项目中用到了SuperAgent,因为遇到了一些坑,就详细的查阅了一下官方的文档,为了便于其他朋友查阅参考,我便对翻译的文档进行了简要整理。后期,我还会针对SuperAgent使用中遇到的一些问题进行完善,并附于文末Issue章节。同时也欢迎大家分享自己在使用SuperAgent过程中遇到的一些问题和解决方法。 ##1 简...

2018-09-20 17:12:17

javascript实现哈夫曼编码

定义哈夫曼树节点HuffmanTreeNodefunction HuffmanTreeNode (weight, char) { // 左子树 this.l = null // 右子树 this.r = null // 字符的度量值,也就是字符在文本中出现的频次 this.weight = weight || 0 // 字符 this.char = char || '

2018-03-29 08:50:50

javascript实现布隆过滤器(改进)

布隆过滤器主要用于大数据应用中的去重操作。相关文章介绍请参考链接:https://yq.aliyun.com/articles/3607哈希函数/** * MurmurHash * * 参考 http://murmurhash.googlepages.com/ * * data:待哈希的值 * offset: * seed:种子集 * */ function MurmurHa

2018-03-29 08:50:09

javascript实现A*寻路算法

A*寻路算法是游戏中经常用到的一种自动路径计算算法,比如连连看、NPC自动巡逻等等。本文章默认用户已经熟悉A*寻路算法算法,不熟悉的可参阅下面链接的文章:文章链接:https://blog.csdn.net/windcao/article/details/1533879先来看看效果图:Node定义寻路过程中的点对象var Node = function (x, y) { this.x = x;

2018-03-23 20:40:15

javascript线索化二叉树

定义二叉树创建方法var Node = function (data) { this.left = null; this.right = null; this.LTag = 0; this.RTag = 0; this.data = data; }/** * createTree * 采取递归方式创建二叉树 * arr:二叉树结点数组,其中数字0表示为空节点 */ fu

2018-03-22 19:24:41

javascript实现OneWayHash算法

One-Way Hash,即单向哈希函数算法,就是无法根据求得的hash值通过简单的逆运算就得到原来的字符串。/** * One Way Hash * 构造初始化 */ function oneWayHash(){ // init cryptTable let seed = 0x0010000, index1 = 0, index2 = 0, tem

2018-03-22 09:59:32

javascript实现KMP算法详解

假设 源字符串source为abcdabceedabcdabcdee,长度为m。 要匹配字符串match为abcdabcd,长度为n。 1.一般的子字符串查找方法我们用i进行源字符串的索引,用j来对要匹配字符串match进行索引。我们从头部开始进行匹配,即i = 0,j = 0。source[0] == match[0],匹配成功,因此对j进行加1,即j = 1,继续匹配下一位。source[1]

2018-03-21 20:22:37

javascript实现二叉树递归遍历和非递归遍历

首先我们实现二叉树的构造(function () { /** * 首先我们定义一个Node的构造函数 */ function Node(data) { this.left = null; this.right = null; this.data = data; } /** * 二叉树的创建 * 我们规定用数字0表示为空节点 */

2018-03-21 20:22:00

javascript求解N皇后问题封装

通过求解N皇后问题,介绍一种的javascript库的封装方法。/** * N:皇后数量 */ var Queen = function (N) { if (N <= 0) { console.log('N is invalid'); } // 确保每一次调用Queen都会生成一个新的对象 return new Queen.fn.init(N); } /** * 原型构造

2018-03-21 20:20:42

Canvas实现烟花效果

一、问题分析首先,我们可以想想一个烟花从地面发射到空中爆炸的整个过程。烟花从地面以一定的速度发出,并在火药的推力下加速运动,运动一定时间后爆炸,爆炸产生小火花,向四周散开,并逐渐变暗直至消失。从上述的描述中我们总结以下几点: + 一束烟花从地面发射 + 烟花以一定的加速度向某个方向飞去 + 飞行一定时间后爆炸 + 爆炸产生一定数量的小火花 + 小火花向四周散开,并逐渐变暗二、设计烟花(Fi

2018-03-15 17:03:17

Symfony配合数据库进行验证登录

在以往的工厂方法中,大量的工厂类增加了类之间的调用依赖关系的复杂度,开发者需要经常去处理这种依赖,随着工厂类的不断增多,这种依赖关系处理中就难免有些疏忽,导致一些错误的产生。此外,在单元测试中,由于具体的功能单元被封装在了每一个工厂类的内部,我们需要深入到类的内部进行测试,如果这些功能单元中有依赖其他类的部分,我们还需要进行修改,待测试完毕后还需要进行还原。既然工厂类是作为基础类库角色,那么对于客...

2018-03-05 22:01:13

YAML语法

YAML(发音 /ˈjæməl/ )是一种专门用户描述数据的简单语言,支持复杂的可嵌套的数据结构。其基本的语法规则是:大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数目不重要,只要相同层级的元素左侧对齐即可标量定义字符串字符串可以用单引号或者双引号进行包裹起来,在有些情况下也可以不用引号。A string in YAML 'A singled-quoted st...

2018-03-05 21:59:48

TCP协议分析(二)

7.慢启动与拥塞避免在局域网中,通信双方通过指定窗口大小来控制着数传的速度,但是当通信双方中间存在多个路由器时,这样的机制就会出现一些问题。路由器要根据目的地址进行路由转发,转发之前需要对数据包进行缓存,这就造成了通信过程中的延迟,在通信量较大或网络状况不好时,因为延迟增加导致通信双方并不能及时知道对方的应答,之前我们提到的超时重传机制就会对之前的数据进行重发,这就加重路由器的缓存压力,而且还是一...

2018-03-05 21:59:08

我们到底能认识多少?

一、思考的诱因 散列表,动态集合中一种可以采用字典查询方式的数据结构,通过散列表,我们可以在O(1)的时间复杂度内找到某个元素。就和数组一样,比如我们要找第四个元素,那么数组直接就可以返回第四个元素,不需要遍历集合进行查找比对。数组的缺陷就在于对索引的规定是死的,只能是从0、1、2、…、n。但是散列表对索引的规定就没有那么死板了,可以是任意字符串或数字,它都能映射到某个位置,而这个映射过程就

2018-03-05 21:58:09

李伯特

逻辑的发明让这个世界逐渐的清晰了起来,同时也给每一 件事物包裹了层层的语法糖衣,在浩瀚的知识海洋中徜徉,我们逐渐失去了对事物内在的感触,而浮在了一切事物的表面。在机器的世界里只有一大堆的0和1,而在庞大的数字之上便是人赋予给它的无限意义。 ...展开 收起
关注
  • 计算机软件/软件工程师
  • 中国 广东省 广州市
奖章
  • 专栏达人
  • 持之以恒