1. 开源项目的一点思考

    前段时间我说要弄一个 图床工具,目前的进度是 95% 卡在了预览阶段,因为我的上传目录结构设计的略复杂,睡了一晚,想到了解决方案。 前端是用 VueJs + 小部分的 element ui ,涉及到的小点难点反而是比公司做的项目要多(题外话,很多招聘要求github上有star >100的这种,表示不怎么赞同,现在随便做一个demo都能攒上100+的start,作为加分项的这个比重是不是要降低一点了…) 后端最初我是打算用 PHP Laravel 来写的,但是 Laravel 需要的 PHP 版本太高感觉太重,所以换了 Koa2 。 然后前天我看到了一个 论坛程序 Flarum, 也是开源放在 Github 上的一个项目。这个时候我不禁在想,如果我的程序给别人用,别人会用么? 难道我还要写个 Readme 手把手告诉别人怎么装 NodeJs 怎么搭环境么? 安装成本太高!!! 自己玩随便怎么弄,折腾 Docker 折腾各种配置程序,但是让别人用不同。我大概有点明白为什么PHP在‘民间’这么流行的 原因了,傻瓜式安装很重要。作为一个用户,程序安装只是一个基础工作,他想用的是你的功能。如果一开始就被安装环境各种配置给阻断了,那他怎么还会有动力来使用呢? 一般有点动手能力的,比如我,就可能自己写这个么程序了。 不信你去看那些建站cms系统,哪个不是解压丢上源码到服务器上,浏览器输入地址栏,一路下一步就ok了。都是这个套路对不对! 小白用户分不清 Linux的权限 所属用户组这些基础知识,或许连vps都没有,只有一个虚拟空间。所以程序搞成这样势必没人会来用,很尴尬。 所以,现在决定抽空将后端api改为PHP的,而且‘略不情愿’的用回 thinkphp 吧。没办法,谁让人家这么简单易用好上手呢。 总结一下,开源项目需要针对目标人群选择对应的框架,开发方案,否则就是在给自己挖坑。同时要将安装部署方案设计的最简单,安装只是使用前的第一步,步子迈得太大容易扯到蛋。

  2. 什么是 Ajax ?

    Ajax的全称为Asynchronous JavaScript And Xml,是一种web客户端与服务器端异步通信的技术。 异步的直观表现就是:当前页面发送一个请求给服务器,当前页面不需要等待服务器响应也可以继续操作网页。 XMLHttpRequest对象 1、创建xhr对象 var xhr = new XMLHttpRequest(); 2、发送请求 xhr.open(“get”,”example.php”,false); xhr.send(null); open方法接受三个参数:要发送的请求类型(常用的有get和post),请求的url和表示是否异步的布尔值。send()方法接受一个参数,即要作为请求主体发送的数据。但是 不需要通过请求主体发送数据时,必须给send()方法传入 null 。 3、异步请求 多数情况下,我们是需要发送异步请求,JavaScript可以继续执行而不必等待响应。这时,可以检测XHR对象的readyState属性,它有以下几个可能的值: 0:未初始化。尚未调用open() 1: 启动。已调用open(),未调用send() 2: 发送。已调用send(),为未收到响应 3:接受。已接受到部分数据 4:完成。已接受全部数据 readyState的值每次变化都会触发一次readystatechange事件。通常,我们只对最后一个状态感兴趣,只要readyState变为4,我们就可以开始处理响应了。因此可以这样写代码: var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function (){ if(xhr.readyState == 4){ //处理 } }; xhr.open(“get”,”example.php”,true); xhr.send(null); 因为调用open方法时也会触发readystatechange事件,所以 在调用open前就要注册eadystatechange事件 。 4 、异步请求 在收到响应后,响应的数据会自动填充xhr对象的相关属性,因此我们只需判断处理这些属性即可。相关属性如下: responseText:作为响应被返回的主体 responseXML:如果响应的类型是”text/xml”或”application/xml”,这个属性将保存着响应的xml文档…