js的qjs 释放内存不了?

后使用快捷导航没有帐号?
查看: 3794|回复: 13
情丶何以堪
新人欢迎积分1 阅读权限60积分4339精华0UID帖子金钱29443 威望0
Lv.6, 积分 4339, 距离下一级还需 661 积分
UID帖子威望0 多玩草15 草
& && &我表示挡不了
&不能,和EZ的E一样,都是顺义&
新人欢迎积分0 阅读权限50积分1250精华0UID帖子金钱5802 威望0
Lv.5, 积分 1250, 距离下一级还需 1250 积分
UID帖子威望0 多玩草0 草
为了大胸而冒个泡& && &
他们逼我做卧底
新人欢迎积分1 阅读权限60积分3352精华0UID帖子金钱16841 威望0
Lv.6, 积分 3352, 距离下一级还需 1648 积分
UID帖子威望0 多玩草0 草
好凶& && && &&&
新人欢迎积分0 阅读权限90积分25060精华0UID帖子金钱2620 威望0
Lv.9, 积分 25060, 距离下一级还需 9940 积分
UID帖子威望0 多玩草7 草
发表自UC浏览器
占坑,。。。路过。。。
新人欢迎积分1 阅读权限50积分1169精华0UID帖子金钱4280 威望0
Lv.5, 积分 1169, 距离下一级还需 1331 积分
UID帖子威望0 多玩草0 草
可以& && && && && &
更多的是自己一个人
新人欢迎积分0 阅读权限50积分1832精华0UID帖子金钱17786 威望0
Lv.5, 积分 1832, 距离下一级还需 668 积分
UID帖子威望0 多玩草0 草
&&我又不知道 别问我 我不知道
情丶何以堪
新人欢迎积分1 阅读权限60积分4339精华0UID帖子金钱29443 威望0
Lv.6, 积分 4339, 距离下一级还需 661 积分
UID帖子威望0 多玩草15 草
我啊我啊微微 发表于
不可以 挡不了 不信你去试
热恋时你说啥就是啥、分手后你爱说啥说啥
新人欢迎积分1 阅读权限70积分5617精华0UID帖子金钱69817 威望0
Lv.7, 积分 5617, 距离下一级还需 4383 积分
UID帖子威望0 多玩草10 草
不知道& && && && && && && &
新人欢迎积分1 阅读权限40积分850精华0UID帖子金钱11528 威望0
Lv.4, 积分 850, 距离下一级还需 150 积分
UID帖子威望0 多玩草0 草
我不知道& & 楼下回答
新人欢迎积分1 阅读权限50积分1169精华0UID帖子金钱4280 威望0
Lv.5, 积分 1169, 距离下一级还需 1331 积分
UID帖子威望0 多玩草0 草
不丶知所措 发表于
不可以 挡不了 不信你去试
我也不知道啊我擦随便回了一句
更多的是自己一个人
一只野生小呆
新人欢迎积分1 阅读权限80积分17159精华0UID帖子金钱8801 威望3
不萌也不会说话的小呆
Lv.8, 积分 17159, 距离下一级还需 2841 积分
UID帖子威望3 多玩草492 草
不能啊& && && && &&&
新人欢迎积分0 阅读权限60积分3455精华0UID帖子金钱15467 威望0
Lv.6, 积分 3455, 距离下一级还需 1545 积分
UID帖子威望0 多玩草30 草
大搓比 发表于
我不知道& & 楼下回答
你好帅,,,钱拿来
新人欢迎积分1 阅读权限60积分4365精华0UID帖子金钱21457 威望3
Lv.6, 积分 4365, 距离下一级还需 635 积分
UID帖子威望3 多玩草387 草
我来水& &我是6级的打水B& && && && && && && &
新人欢迎积分1 阅读权限50积分2059精华0UID帖子金钱37872 威望0
Lv.5, 积分 2059, 距离下一级还需 441 积分
UID帖子威望0 多玩草10 草
大师手笔& && && && && && && &
元宝专属二阶勋章。已绝版
需要金钱:1100
手机盒子客户端点击或扫描下载
Powered byQWebView与JS交互出现的问题
[问题点数:40分]
QWebView与JS交互出现的问题
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|异步控制流程 Q .js - 简书
异步控制流程 Q .js
//封装promise
var readFile = function (fileName) {
var defer = Q.defer();
fs.readFile(fileName, function (err, data) {
if (!err) {
defer.resolve(data.toString());
defer.reject(err);
return defer.
var cpsReadFile = function(fileName){
return Q.nfcall(fs.readFile,fileName,'utf-8');
//基本读取
readFile("./text01")
.then(function(data){
console.log("text01",data);
return readFile("./text02");
.then(function(data){
console.log("text02",data);
return readFile("./text03");
.then(function(data){
console.log("text03",data);
.fail(function(err){
console.log(err);
//采用done读取
readFile("./text01")
.then(function(data){
console.log("text01",data);
return readFile("./text02");
.then(function(data){
console.log("text02",data);
return readFile("./text03");
.done(function(data){
console.log("text03",data);
},function(err){
console.log(err);
//队列执行
var queue = [];
queue.push(readFile("./text01"));
queue.push(readFile("./text02"));
queue.push(readFile("./text03"));
Q.all(queue)
.then(function(data){
console.log("返回1",data[0]);
console.log("返回2",data[1]);
console.log("返回3",data[2]);
},function(err){
console.log(err);
//遵循cps的函数 可以使用Q.nfcall nfapply变成promise
Q.nfcall(fs.readFile,"text01",'utf-8')
.then(function (data) {
console.log("text01", data);
Q.nfcall(fs.readFile,"text02",'utf-8')
.then(function (data) {
console.log("text02", data);
},function(err){
console.log(err);
热爱Html5,node-webkit,cocos2djs angularjs ,nodeJs,react-native 微信小程序
官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大奖:点击这里领取 如果你写过任何数量相当的JavaScript,这就不是什么秘密:异步编程是一种必须的技能。管理异步的主要机制曾经是函数回调。 然而,ES6增加...
Node.js 的设计初衷为了性能而异步,现在已经可以写同步的代码了,你造吗? 目前 Node.js 的LTS版本早就支持了Generator, Promise这两个特性,也有许多优秀的第三方库 bluebird、q 这样的模块支持的也非常好,性能甚至比原生的还好,可以用 ...
HTML 学习笔记 May 9,2017 js运行原理、js开发工具介绍、js程序(hello)、js基本语法、js基本数据类型、js 运算符、js 移位运算、js三大流程控制(顺序流程、分支控制、循环控制) 因为 js 是由浏览器来解释执行的,因此这里有一个问题,不同类型...
0.Nimble 在Node.js中,异步编程技术让我们可以同时处理多个任务,这也是Node.js适用于高并发需求的原因之一。 不过有时候,我们仍然需要强调执行的顺序,这就导致我们会不断地将回调函数嵌套进第一个调用的函数,导致整段代码嵌套得很深。举个例子,我们要读取5个文件...
async是一个使用比较广泛的JS异步流程控制模块,除了可以在Nodejs上运行,也可以在浏览器端运行,主要用于优化Nodejs异步过程中的各种复杂的回调。async主要实现了三个部分的流程控制功能:集合: Collections流程控制: Control Flow工具类:...
《了不起的盖茨比》〔美〕斯科特o菲茨杰拉德 著
邓若虚 译 1.在我年纪还轻、阅历尚浅的那些年里,父亲曾经给我说过一句忠告,直到今天,这句话仍在我心间萦绕。“每当你想批评别人的时候”,他对我说,“要记住,这世上并不是所有人,都拥有你拥有的那些优势。”……于是,我逐渐养成...
随着生活节奏的日益加快,时间对于我们这一代人来说越来越碎片化。我们很难集中注意力去用心思考,认真挑选一件有新意更有心意的礼物。于是,女朋友生日发一个含521几个数字的红包,爸妈生日发一个666的红包,朋友们过生日则发一个888...可是,我们有没有想过那只是一串冰冷冷的数字...
“叮铃铃”下课铃响了,结束了一天的学习生活,同学们赶紧收拾好书包欢呼雀跃着来到了舞蹈教室。每周二、四的下午第三节课同学们准时聚集在舞蹈室一起进行练习。音乐响起时,平时安静的训练室有了生命的活力。虽然流淌着汗水却洋溢着灿烂的笑容,这一朵朵舞动的小花,在校园里绚丽绽放!舞动...
【三件事】 1. 超级个体第一周任务的计划,着手考虑并采取相应的行动了。 2. 得到订阅专栏文章的精读,一个小时。 3. 整理卫生、洗衣服~ 【小确幸】 离开福州前的应酬忙活了一周多基本处理好了,接下来可以有更多的时间来给自己自我学习勒~ 【一个感悟】 公司死了,我们人还在...Q.js 轻量的前端单页路由框架 - 轩枫阁 – 前端开发 | web前端技术博客
/ Q.js 轻量的前端单页路由框架
阅读:8046
作者:ivan
前端时间做过一些带有不少逻辑的H5,例如微信运动,如果用H5开发,大概包含排行榜、profile页、点赞页等页面。不简单页不复杂,主要包含3个页面的切换,可以前进后退,是一个单页应用。但是又比较简单,只需要使用一个前端路由就可以解决。
Q.js代码不到百行,使用起来很简单。
Q.js 是一个炒鸡轻量的前端单页路由框架。
轻量、快速、极简
为了更好的利用缓存以及更少的后端支援,Q.js放弃了 HTML5 State,通过#!格式的 url hach 重现了 url 路由功能。
无 JavaScript 库依托,可随意搭配使用
源代码不及百行压缩后 834byte
支持 IE6+ Chrome Safari FF
未做情况判定,使用 Q.js 必然会注册 window.Q
万物之死始
我们先来一段简单的 Hallo World
123456789101112131415
&!DOCTYPE html&&meta charset="UTF-8"&&&div id="m"&&/div&&&script src="q.js"&&/script&&script&Q.reg('home',function(){&&&&document.getElementById('m').innerHTML='Hallo World';});&Q.init({&&&&index:'home'/* 首页地址 */});&/script&
打开例子后,浏览器会从 http://simple.com/ 跳转到 http://simple.com/#!home ,并且在页面显示 Hallo World。
如此,您的第一个通过 Q.js 实现的 URL 路由就工作了~ 接着我们再详细说明下,如何让 Q.js 工作的。
在 Q.js 中,提供 关键字 和 正则表达式 两种注册 URL 方式。 关键字注册 URL 在 Q.js 中效率最高、但需要按照关键字模式规划 URL,在前者不能满足需求情况下可以使用正则注册法~
使用正则表达式注册URL可能会不同程度的增加运行时间(极不明显),在允许的情况下请优先使用关键字注册 URL~
接下来我们通过规划一个 blog 的URL,来学习如何使用 Q.js 注册URL。
我们先从首页开始~
在注册之前我们分析一下注册首页 URL 都有哪些需求:
首先首页有一个固定格式
在大部分情况下不需要在 URL 中体现参数传递
是打开域名时的默认展示页
首先我们通过注册一个固定页面 home ,回调不期待传值
Q.reg('home',function(){&&&&console.log('打开了首页');&&&&/* JavaScript 代码 */});
通过以上代码 访问 #!home 时,就会触发后面的回调。
在回调中我们修改页面 DOM 实现页面无刷新变换内容。 (这部分不在本篇文档所述范畴)
按照这样的方法,同理 我们也可以实现 类似 关于 #!about、友情链接 #!friend 等等页面的注册。
实现了首页的 URL 注册之后,我们要在打开网页时默认跳转到 home 页。
Q.js 的启动,由 Q.init 函数实现。
Q.init({&&&&index:'home'/* 首页地址 如果访问到不能访问页面也会跳回此页 */});
在 init 的启动参数里面附带 index 参数,这样我们访问页面时就会默认打开 #!home
如果觉得 #!home 中的 ! 不符合预期,这…也是可以改的~
Q.init({&&&&key:'^_^', /* url里#和url名之间的分割符号 默认为感叹号 */&&&&index:'home' /* 首页地址 不可访问路径也会跳回此地址 */});
可以通过任意符合 URI 规范的字符串分割,甚至也可以设置为空。
设置为空时,Google等现代搜索引擎可能无法按照路由地址实现索引。请谨慎设置
文章页和翻页
文章页和首页不太一样、只有URL的一部分是相同的,需要通过URL中的不同部分区分不同文章页,不是默认打开页。
文章页有一个固定的格式
需要在URL中体现文章唯一ID
Q.js 关键字模式时,参数之间通过 / 分割,请根据顺序进行 URL 规划
Q.reg('article',function(aid){&&&&if(!aid)&&&&&&&&return alert('传入参数不正确,请确认您访问的地址。');&&&&&console.log('打开了文章,文章唯一ID为:'+aid);&&&&/* JavaScript 代码 */});
注册之后访问页面 #!article/123 即可触发 article 页面回调,并传入 参数1 "123"
Q.js 不判断传入数据类型,请务必在回调中确认数据格式
翻页可文章页传值方式基本一致,在这里不重述
分类页其实和文章页很相似、只是参数一变成了分类名称,内容较多时需要传递下当前页码
分类页有一个固定的格式
需要在URL中体现分类唯一名称
可能会有页码信息
依据上面的要求,我们依旧使用关键字注册模式,注册一个名为 category 的 url 预设两个参数 分类唯一名称 cstr ,页码page
1234567891011121314151617
Q.reg('category',function(cstr,page){&&&&if(!cid)&&&&&&&&return alert('传入参数不正确,请确认您访问的地址。');&&&&&if(!page)/* 如果 */&&&&&&&&page=1;&&&&&console.log('打开了分类页面,分类名称是: '+cstr);&&&&console.log('当前页面:'+page);&&&&&/* 下面这段伪代码依托iTorr.js 仅作参考 */&&&&/* 根据分类唯一名称和页码发起 AJAX 请求 */&&&&$.x('/api/category/'+cstr+'/page/'+page,function(d){&&&&&&&&console.log(d);&&&&&&&&/* 在这里修改页面DOM */&&&&});});
访问 #!category/photo 会传入 photo 到 category 的回调函数 访问 #!category/photo/2 会传入 photo 和 2 到 category的回调函数
参数二不存在时,需要在回调函数内进行处理~
有了这些 URL 之后,我们还需要一个导航条来提供页面之间的入口, 导航条需要在每次页面变更时修改导航条样式,指示当前打开的页面。
我们的 HTML 一般是这样的
&nav&&&&&&a href="#!home" class="active"&首页&/a&&&&&&a href="#!about"&关于&/a&&&&&&a href="#!friend"&友情链接&/a&&/nav&
CSS 一般是这样的
nav{line-height:2em;}nav a{display:inline-block;vertical-align:top;padding:0 .5em;}nav a.active{background:#369;color:#FFF;}
这时候我们需要在每次 URL 变更时,通过 JavaScript 动态修改 nav 中的 active class 的位置,以修改样式。
12345678910
/* 这段伪代码依托iTorr.js 仅作参考 */var navchange=function(L){/* 每次有url变更时都会触发pop回调 */&&&&/* L 为当前回调函数名称(目前仅支持关键字回调情况) */&&&&&var a;//临时变量&&&&if(a=$('nav a.active')) //如果存在这个DOM &&&&&&&&a.className=''; //修改它的ClassName&&&&if(a=$('nav a[href="#!'+L+'"]')) //如果存在这个DOM &&&&&&&&a.className='active';//修改它的ClassName};
Q.js 提供了 Q.pop 事件,可以通过注册 Q.pop 实现在每次 URL 变更时发生回调, Q.pop 事件和其他 URL 事件不发生冲突,并在其他 URL 回调函数之前运行,请注意触发时机。
注册和修改 Q.pop 有多种途径。可以放在启动函数中注册,比如:
Q.init({&&&&/* ...各种其他参数... */&&&&pop:navchange //注册 pop 函数});
也可以通过 关键字注册
Q.reg('pop',navchange);
甚至可以直接修改 Q.pop
Q.pop=navchange
请注意,使用 Q.js 请避免使用 Q.js 保留关键字为 关键字URL 地址 保留关键字包括:reg,pop,go,V
到这里,我们的简单的博客差不多就能用啦~
还剩下一个正则注册 URL 没有说,正则注册在关键字判定前进行判定,不论注册前后,请注意判定顺序。所以也因为这样,我们关键字判定中的关键字部分可以用正则表达式注册法替代。
但是如果我们依旧想用保留关键字,用正则注册法是这样实现的
Q.reg(/pop/,function(){&&&&console.log('pop事件');});
正则注册法需要在正则里指定可能传入的值
以上我们的博客URL规划基本就已经完成啦~
如何实现更加丰富的 url 格式
关键字注册法虽然方便,但仅仅支持 关键字/参数1/参数2/参数3 这种格式,想要实现更多不科学的 URL 格式,可以通过正则注册法~ 比如视频网站的链接,由v开头后面跟数字ID的情况,预期必然会有参数一 并且为数字
Q.reg(/v(\d+)/,function(vid){&&&&console.log('pop事件 参数一:'+vid);});
这样访问 http://simple.com/#!v1234567 就会传递值 1234567 给回调函数。
我想在 JavaScript 里知道当前在哪个页面如何实现?
访问 Q.lash 变量即可返回当前页面关键字
Q.lash 目前仅可返回关键字注册的 URL,预计会在下次版本更新时增加正则支持。
如何通过JavaScript跳转到特定链接
因为在 Q.js 中!关键字是可以被修改的,如果通过JavaScript实现URL跳转,可以调用 q.go 函数
Q.go('category/code');
当然,大部分情况我们推荐使用 HTML 原生的 a 标签 link 通过访客触发,进行跳转
&a href="#!category/code"&代码分类&/a&
纸飞机许愿
前端路上,一路有你。编辑你的正能量,快乐工作,努力生活~
请选择弹奏的曲谱
点击开始录制,可以录制弹奏的曲子
分享钢琴节奏:}

我要回帖

更多关于 js 释放变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信