在用 Bootstrap 时候发现,如果我在一个弹出的 modal 中再弹出一个 modal 的时候,js 就会报错“too much recursion”,从而会影响 modal 中弹出的那个 modal 里面的一些 jquery 插件的使用,解决方案就是把$.fn.modal.Constructor.prototype.enforceFocus 方法去掉就可以了。 在 Bootstap.js 包含以后加上: $.fn.modal.Constructor.prototype.enforceFocus = function() {}; 这样就不会报错了! 转载请注明: 转载自Yuansir-web 菜鸟 | LAMP 学习笔记 本文链接地址: Bootstrap 页面中多个 modal 报”too much recursion”错误的解决方案 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

阅读全文

本文总结一下浏览器在 javascript 的加载方式。 关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy execution),async 属性, defer 属性 一、同步加载与异步加载的形式 1. 同步加载 我们平时最常使用的就是这种同步加载形式: <script src="http://yourdomain.com/script.js"></script> 同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止了后续的解析,因此停止了后续的文件加载(如图像)、渲染、代码执行。 js 之所以要同步执行,是因为 js 中可能有输出 document 内容、修改 dom、重定向等行为,所以默认同步执行才是安全的。 以前的一般建议是把<script>放在页面末尾</body>之前,这样尽可能减少这种阻塞行为,而先让页面展示出来。 简单说:加载的网络 timeline 是瀑布模型,而异步加载的 timeline 是并发模型。 2. 常见异步加载(Script DOM Element) (function() { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'http://yourdomain.com/script.js'; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); })(); 异步加载又叫非阻塞,浏览器在下载执行 js 同时,还会继续进行后续页面的处理。 这种方法是在页面中<script>标签内,用 js 创建一个 script 元素并插入到 document 中。这样就做到了非阻塞的下载 js 代码。

阅读全文

刚开始学习Express的时候,在 app.js 中发现 app.use,当时比较困惑。 app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); 这里其实就是定义使用了中间件(Middleware)。Express 框架实际上是依赖 Connect 创建的,这里的 use 方法是 Conncet 提供的,它用来注册一个中间件到 Connect 中间件队列。 什么是中间件? 我的理解是这样的,中间件就是类似于一个过滤器的东西,在客户端和应用程序之间的一个处理请求和响应的的方法。 什么是 Connect? Connect 是 Node.js 中的一个模块,可以用来创建中间件的一个框架,它自身已经包装了 Node 的 HTTP 模块的 Server 以及 Server 的 req 和 res 的对象。它干的活其实就是处理请求,然后响应客户端或是让下一个中间件继续处理,它的原型是这个样子的 function (req, res, next) { // 中间件 } 当 next 回调函数被调用,中间件就完成工作并传递到下一个中间件,如果没其他中间件则进入到应用逻辑继续执行。 下面来写一个简单的脚本,自己注册 2 个中间件来理解下: var connect = require('connect'), http = require('http'); var app = connect() .use(access) .use(test); function access(req, res, next) { var now = new Date().

阅读全文

安雅地震,为灾区人民默哀,很多知名网站和门户都显示黑白的效果,基本上支持所以浏览器变灰白,这种效果的 CSS 代码如下: html{ filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(1); } #grayscale"); filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(1); } 转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记 如果觉得本篇文章对您十分有益,何不 打赏一下 本文链接地址: 网页显示黑白效果,同时兼容主流浏览器 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

阅读全文

一个短信服务的需求,决定用Nodejs来写,本来是要用 nodejs 的 soap 的服务,可是node-soap 这个包貌似有坑,总是报错,也许是我的版本有问题,我用的是 v0.8.7,后来只能通过抓包,向 SOAP 的接口发送 HTTP 的 POST 请求了,最后终于还是实现了。 主要的功能是实现一个短信服务的接口,外部的发送 http 请求到这个短信服务接口上来,短信服务向发送短信的服务器端转发请求,相当于一个中间验证和请求服务。 主要用到了 Nodejs 的 mysql 包node-mysql,还有 nodejs 解析 XML 的包libxmljs。虽然是一个小的脚本,代码也比较蹩脚(我的 JS 基础很差),但是写完还是学会了不少东西,比如 nodejs 操作 mysql,发送 post 请求,MD5 加密。。。这里加简单的注释贴出来,忘各位看官多指正,第一次写 nodejs!! var url = require('url'); var http = require('http'); var qstr = require('querystring'); var mysql = require('mysql'); var libxmljs = require('libxmljs'); var connection = mysql.createConnection({ //建立数据库连接 host: '127.0.0.1', user: 'root', password: 'yuansir-web', database: 'test', port: '3306' }); var userName = 'yuanxuxu.

阅读全文

作者的图片

Ryan是菜鸟 | LNMP技术栈笔记

一步一个脚印,一直在路上!记录LNMP技术栈,Web架构,区块链等笔记

菜鸟码农

南京