<?php
namespace Addons\Yaoyiyao\Controller;
use Home\Controller\AddonsController;
class YaoyiyaoController extends AddonsController{
var $model;
function _initialize() {
$this->model = $this->getModel ( 'yaoyiyao' );
parent::_initialize ();
$act = strtolower ( _ACTION );
$type = I ( 'type' );
$res ['title'] = '列表';
$res ['url'] = addons_url ( 'Yaoyiyao://Yaoyiyao/lists' );
$res ['class'] = $act == 'lists' || $type == 'text' ? 'current' : '';
$nav [] = $res;
$res ['title'] = '设置';
$res ['url'] = addons_url ( 'Yaoyiyao://Yaoyiyao/config' );
$res ['class'] = $act == 'config' || $type == 'config' ? 'current' : '';
$nav [] = $res;
$res ['title'] = '清零';
$res ['url'] = addons_url ( 'Yaoyiyao://Yaoyiyao/dc' );
$res ['class'] = $act == 'dc' || $type == 'dc' ? 'current' : '';
$nav [] = $res;
$this->assign ( 'nav', $nav );
}
public function dc() {
if($_GET['del']=='ok'){
$map['numm']=0;
$mapw['id']=array('gt',0);
M('yaoyiyao')->where($mapw)->save($map);
header('Location:/index.php?s=/addon/Yaoyiyao/Yaoyiyao/lists.html');
exit;
}
$templateFile = $this->model ['template_list'] ? $this->model ['template_list'] : '';
$this->display ( $templateFile );
}
// 通用插件的列表模型
public function lists() {
$map ['token'] = get_token ();
$list_data = $this->_get_model_list ( $this->model,0,'numm desc' );
foreach($list_data['list_data'] as &$lv){
$lk++;
if($_GET['p']<2) $_GET['p']=0;
$lkn=$lk+($_GET['p']*10);
$lv['user']=$lv['user'].' (第'.$lkn.'名)';
}
$this->assign ( $list_data );
$templateFile = $this->model ['template_list'] ? $this->model ['template_list'] : '';
$this->display ( $templateFile );
}
}
Article Detail
微信摇一摇统计次数微官网
model = $this->getModel ( 'yaoyiyao' ); parent::_initialize (); $act = strtolowe...
config.html
js图片html音频mp3资源文件打包下载
$_SESSION openid bug
ios 默认不能自动播放音频文件,需要监听一个事件 scroll 或 click 事件触发音频播放,音频格式并无关系。
howler.js这个插件
JavaScript中8个常见的陷阱
1. 你是否尝试过对数组元素进行排序?
JavaScript默认使用字典序(alphanumeric)来排序。因此,[1,2,5,10].sort()的结果是[1, 10, 2, 5]。
如果你想正确的排序,应该这样做:
2. new Date() 十分好用
new Date()的使用方法有:
不接收任何参数:返回当前时间;
接收一个参数x: 返回1970年1月1日 + x毫秒的值。
new Date(1, 1, 1)返回1901年2月1号。
然而....,new Date(2016, 1, 1)不会在1900年的基础上加2016,而只是表示2016年。
3. 替换函数没有真的替换?
如果你想把所有的b都替换掉,要使用正则:
4. 谨慎对待比较运算
因为[1,2,3]和[1,2,3]是两个不同的数组,只是它们的元素碰巧相同。因此,不能简单的通过===来判断。
5. 数组不是基础类型
如果要判断一个变量var是否是数组,你需要使用Array.isArray(var)。
6. 闭包
这是一个经典的JavaScript面试题:
虽然期望输出0,1,2,...,然而实际上却不会。知道如何Debug嘛?
有两种方法:
使用let而不是var。备注:可以参考Fundebug的另一篇博客ES6之"let"能替代"var"吗?
使用bind函数。备注:可以参考Fundebug的另一篇博客JavaScript初学者必看“this”
Greeters.push(console.log.bind(null, i))
当然,还有很多解法。这两种是我最喜欢的!
7. 关于bind
下面这段代码会输出什么结果?
如果你说程序会崩溃,并且报错:Cannot read property 'name' of undefined。
因为第16行的geet没有在正确的环境下执行。当然,也有很多方法解决这个BUG!
我喜欢使用bind函数来解决问题:
这样会确保greet会被Foo的实例调用,而不是局部的函数的this。
如果你想要greet永远不会绑定到错误的作用域,你可以在构造函数里面使用bind来绑 。
你也可以使用箭头函数(=>)来防止作用域被修改。备注:可以参考Fundebug的另一篇博客JavaScript初学者必看“箭头函数”。
8. Math.min()比Math.max()大
因为Math.min() 返回 Infinity, 而 Math.max()返回 -Infinity。
原文: Who said javascript was easy ?
译者: Fundebug的全栈BUG监控
if(!localStorage.lastnamenn) localStorage.lastnamenn=Number(localStorage.lastnamenn)+Number(n);😬😬😬
这篇回答叫做:“为什么有时候下载东西一开始很快,后来就越来越慢”回答暨通信网理论基础课程复习笔记
不是套路!!!是TCP协议的拥塞控制机制导致的!
要理解TCP的拥塞控制机制,还得从古老的七层模型说起……
其中TCP协议应用于传输层,下载就是传输的一种,而TCP传输的速度基本是这样的
其中横坐标是传输次数,纵坐标是“拥塞窗口”数,就是要传输的报文需要先进入这个窗口才能发出去,简单的理解成传输速度就可以了a
假设我要在百度云上下载一个文件,以之为例解释一下这个过程。
(A→B段)
百度云:不知道当前网络环境怎么样,路上堵不堵……不管了发一个报文试试。
我:收到啦收到啦!
百度云:诶呦不错那再发两个试试~
……
百度云:行了行了差不多了可以慢点儿增加了
这一段,起点学名叫做慢开始,后面叫指数增大
(B→C段)
百度云:加一个
我:收到啦
百度云:再加一个
我:收到啦
百度云:再加一个
我:……
百度云:? 诶好像堵了= =
这一段,学名叫做,拥塞避免算法,即,加法增大
(C→D段)
百度云:算了从头开始
这一段叫做,乘法减小,开始新的慢开始,指数增大,但是,只增大到刚刚的一半,就进入拥塞避免阶段啦!(D→E段,E纵坐标是C的一半)
以上是TCP Tahoe版本的传输过程(也是主要考试的内容),然而实际上这个版本太基础了,已经废弃不用了,实际使用的是红线的版本,叫做TCP Reno(但是这个不考)
红色版本与蓝色版本的区别就是,红色版本的乘法减小并不是直接减到1然后重新慢开始,而是采用了效率高一些的“快恢复快重传”算法,也就是乘法减小至原来的一半(C→F段,F是C的一半)然后直接开始加法增大。这样可以看到比原来的蓝色版本稍微快了一点。
但下载还是很慢啊怎么办,关于这点老师的说法是,自己手动暂停一下,再重新开始下载,就又能享受一次第一次的指数增加加法增加的速度,不然后面一直减半减半减半就会越来越慢越慢越慢………………
以上都是与TCP协议有关的理论因素,其他因素还包括加速器啊下载器啊什么的
PHP输出中文乱码的问题
用echo输出的中文显示成乱码,
其实应该是各种服务器脚本都会遇到这个问题,
根本还是编码问题,
一般来说出于编码兼容考虑大多的页面都将页面字符集定义为utf-8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
这时候要正常显示中文需要转化一下编码方式,比如
echo iconv("GB2312","UTF-8",'中文');就不会乱码了
还有其他方法,比如
在php的echo前面加入header("Content-Type:text/html;charset=gb2312");
当然简体中文页面也可以干脆地,
把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />中的UTF-8改成gb2312
实际中遇见奇怪的现象,
在本机服务器上正常显示的页面,传上服务器就echo出来乱码,
没仔细琢磨过这个缘由,因为通过iconv函数GB2312、UTF-8换换位置重新编码下就正常了,
不过估计肯定是APACHE,更确切说是PHP服务端的设置不同造成的,
看看PHP.INI应该就能解决。
在php的echo前面加入
js字符串转换成数字的三种方法
H5的storage(sessionstorage&localStorage)简单存储删除
众所周知,H5的storage有sessionstorage&localStorage,其中他们的共同特点是API相同
下面直接上代码,storage中的存储与删除:
存值取值删除
进行数据字段加减操作
经常有需要对某个数据表的计数字段进行加减操作,我们来看下在ThinkPHP中的具体使用办法。
最简单的,使用下面方法对score自动加1:
当然,也可以加更多的积分:
当然也可以减1操作
setInc和setDec方法只能单独对一个字段进行操作,如果你的字段加减操作要和其他字段的更新一起的话,则需要采用表达式更新的方式了,例如:
表示对id为5的用户数据进行昵称和积分修改操作。
这段代码就称之为表达式更新。
加无所谓了,如果是减的话,有可能导致字段为负值,对于int类型来讲会导致这个值非常大
dz会员回帖积分bug
DISCUZ积分交易系统积分活动异常BUG修复方法
Discuz x3.1 x3 x2.5论坛刷积分各种方法+修复补丁
dz论坛回复主题等奖励积分自动归零归0更新0
微信iOS客户端升级内核为wkwebview后,微信返回上一页的按钮会强制性使用页面缓存,困扰了我整整一天,解决方案如下。
解决方案,将debugtbs.qq.com复制到微信对话框发送,然后进入就可以强制使用系统webview,删除x5tbs
#1微信浏览器端页面框架是否也可以达到效果?
jquery遍历的radio的取值