摘要:
这个问题应该确确实实是一个Chrome的BUG,我在自己的编程环境中发现,并在多个服务器,多个编程语言的运行环境,以及多个浏览器下都测试过,都看到有2次请求出现。为了证明不是自己环境的问题,我也特意去找了一些其他站点,用它里面的一些会产生重定向的请求来测试。比如这个请求地址http://wenda.golaravel.com/account/openid/qq_login/,这是golaravel... 阅读全文
摘要:
本文介绍如何使用PhpStorm集成xdebug在本地开发环境进行断点调试的技巧。 我配置的环境是:Windows10 + PhpStorm10.0.1 + PHP5.6。 1. 下载xdebug的扩展,并配置到php.ini zend_extension = d:\dev\php5.6.28\ext\php_xdebug-2.5.0-5.6-vc11-x86_64.dll xdebug... 阅读全文
摘要:
本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点。文章很长,但是内容应该很有用,希望有需要的朋友能看到。php经验有限,不到位的地方,欢迎帮忙指正。 1. laravel容器基本认识 laravel框架是有一个容器框架,框架应用程序的实例就是一个超大 阅读全文
摘要:
最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读。 本文面向的是php语言laravel框架的用户,介绍的是基于该框架实现的一个简易集成微信登录的方法。使用方法如下: 1. 安装php_weixin_prov 阅读全文
摘要:
最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_proxy,详细的介绍请往下阅读。 在做项目集成微信登录以及微信支付的时候,都需要进行用户授权。这个授权的流程可以简单描述为: 1. 用户从我们的应用触发需要授权的操作,比如点击微信登录; 2. 应用收到这种用户请求后,将用户重定向到微信提供的一个授权页面: 或 3... 阅读全文
摘要:
单点登录是我比较喜欢的一个技术解决方案,一方面他能够提高产品使用的便利性,另一方面他分离了各个应用都需要的登录服务,对性能以及工作量都有好处。自从上次研究过JWT如何应用于会话管理,加之以前的项目中也一直在使用CAS这个比较流行的单点登录框架,所以就一直在琢磨如何能够把JWT跟单点登录结合起来一起使 阅读全文
摘要:
上文《3种web会话管理的方式》介绍了3种会话管理的方式,其中token-based的方式有必要从实现层面了解一下。本文主要介绍这方面的内容。上文提到token-based的实现目前有一个开放的标准可用,这个标准就是JWT,从它的官网上也能看到,目前实现了JWT的技术非常多,基本上涵盖了所有的语言平 阅读全文
摘要:
http是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的。当然它知道是哪个客户端地址发过来的,但是对于我们的应用来说,我们是靠用户来管理,而不是靠客户端。所以对我们的应用而言,它是需要有状态管理的,以便服务端能够准确的知道http请求是哪个用户发起的,从 阅读全文
摘要:
本文介绍如何使用backbone的history模块实现SPA应用里面的URL管理。SPA应用的核心在于使用无刷新的方式更改url,从而引发页面内容的改变。从实现上来看,url的管理和页面内容的管理是其中的两个难点。就url的管理而言,主要有以下三方面的要求: 1)对于要采用单页跳转的链接,不能有页面刷新; 2)浏览器的前进和后退,都能像多页应用那样,显示之前访问地址对应的内容; ... 阅读全文
摘要:
本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变化对浏览器的历史记录也会影响,同时锚点的变化跟pushState也有一些关联。所以就花了点时间,把这两个东西尽量都琢磨清楚。本文记录相关的一些要点及研究过程。 1. hashchange 这个部分的内容也已 阅读全文
摘要:
这是一篇基础文章,讲述一些浏览器里面历史记录栈管理的相关内容。写这个的起因,源于我最近想研究pushState,看看用它来实现SPA会遇到哪些问题,而pushState最终影响的就是浏览器历史记录栈里面的内容,所以就花了点时间琢磨了一下浏览器是如何管理历史记录栈的。因为在研究的过程中,发现了一些曾经不曾注意到一些要点,所以就记录下来了。 demo地址:http://liuyunzhuge.git... 阅读全文
摘要:
微信官方已经开放微信小程序的官方文档和开发者工具。前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app。这个app基于微信小程序的平台,实现了todo app的常规功能,同 阅读全文
摘要:
这是我写的关于列表组件的第5篇博客。前面的相关文章有: 1. 列表组件抽象(1)-概述 2. 列表组件抽象(2)-listViewBase说明 3. 列表组件抽象(3)-分页和排序管理说明 4. 列表组件抽象(4)-滚动列表及分页说明 本文介绍如何实现一个简洁易用的表格组件。 它对应的源码是: ht 阅读全文
摘要:
这是我写的关于列表组件的第4篇博客。前面的相关文章有: 1. 列表组件抽象(1)-概述 2. 列表组件抽象(2)-listViewBase说明 3. 列表组件抽象(3)-分页和排序管理说明 本文介绍列表组件中我对滚动列表及滚动分页的实现思路。 在pc端,通过滚动进行翻页的需求非常常见;移动端也是,只 阅读全文
摘要:
这是我写的关于列表组件的第3篇博客。前面的相关文章有: 1. 列表组件抽象(1)-概述 2. 列表组件抽象(2)-listViewBase说明 本文介绍列表组件中我对分页和排序的抽象思路。 先来说分页,因为之前写过一篇简单封装分页功能pageView.js,这次封装分页时的思路基本与那篇博客的想法完全一样,只不过考虑到我要写的列表组件,还有其它的分页形式,比如点击加载更多进行翻页,基于浏览... 阅读全文
摘要:
这是我写的关于列表组件的第2篇博客。前面的相关文章有: 1. 列表组件抽象(1)-概述 listViewBase是列表组件所有文件中最核心的一个,它抽象了所有列表的公共逻辑,将来如果有必要添加其它公共的逻辑,都可以考虑在这个类中处理。它主要做的事情包括:初始化,如排序组件初始化,分页组件初始化,模板 阅读全文
摘要:
这次要介绍的是列表组件。为了写它,我花了有将近2周的晚上,才一点一点的把它写到现在这个程度。到目前为止,一共写了有17个文件,虽然没有覆盖到一些更复杂的场景,但是把我当时计划写这个组件的基本目的已经完成了。先给大家看看我最后写出来的文件情况: 也许有人会好奇,一个列表的功能怎么会写出这么多东西出来?关于这个问题的答案,我稍后再来总结,先让我描述下我写这些东西之前产生的想法。 1. 背景介绍... 阅读全文
摘要:
本文提供一个简单的方法实现一个流程的进度条加载效果,以便在页面中可以通过它来更好地反馈耗时任务的完成进度。要实现这个功能,首先要考虑怎样实现一个静态的进度条效果,类似下面这样的: 这个倒是比较简单,两个div即可,bootstrap官方就提供有多种主题的进度条组件。如果自己要用,参照下别人的代码,写成自己的风格即可,实际上也非常的好理解: .progress { height... 阅读全文
摘要:
分页是一个很简单,通用的功能。作为一个有经验的前端开发人员,有义务把代码中类似这样公共的基础性的东西抽象出来,一来是改善代码的整体质量,更重要的是为了将来做类似的功能或者类似的项目,能减少不必要的重复工作量。在实际项目中,尤其是网站类型的项目中,分页部分的设计总是个性化比较强,基本上都不会长的一样, 阅读全文
摘要:
由于最近做了一些页面的动画效果,之前经验不多,这次做的过程中碰到些问题,加之很早前就阅读过一篇很好介绍动画的博客《关于动画,你需要知道的》,来自十年踪迹,所以就思考了一些关于动画的基本原理的问题,比如本文这个。这个问题要简单也可以非常简单,比如前面提到那篇博客里就有一个比较好的解释,本文提供的是另外一种更详细地方式,希望对有需要的人有所价值。 在客观的物体运动中,以匀速直线运动为例,我们可以同时... 阅读全文