我有一个脚本可以检测我网站上的Javascript错误,并将它们发送到我的后端进行报告.它报告遇到的第一个错误,假设的行号和时间.
编辑包含doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
Run Code Online (Sandbox Code Playgroud)
...
<script type="text/javascript">
//<![CDATA[
// for debugging javascript!
(function(window){
window.onerror = function(msg, url, ln) {
//transform errors
if (typeof(msg) === 'object' && msg.srcElement && msg.target) {
if(msg.srcElement == '[object HTMLScriptElement]' && msg.target == '[object HTMLScriptElement]'){
msg = 'Error loading script';
}else{
msg = 'Event Error - target:' + msg.target + ' srcElement:' + msg.srcElement;
}
}
msg = msg.toString();
//ignore errors
if(msg.indexOf("Location.toString") > -1){
return; …
Run Code Online (Sandbox Code Playgroud) 我正在试图弄清楚我可以用什么Javascript API来支持Mobile Safari回iOS2.我没有在任何地方找到一个列表,显示每个新版本的iOS随附的Mobile Safari版本.我正在寻找一个全面的列表,一直回到iOS2.
谢谢!
[编辑:是的,我知道并喜欢功能检测.但是,我需要支持一组有针对性的浏览器,我只需要验证我提供的回退覆盖了我的目标受众,而且我不需要提供额外的后备,这些都是繁琐的黑客攻击.)
的package.json:
...
"name": "mypackage",
"main": "src/index.js"
...
Run Code Online (Sandbox Code Playgroud)
目录结构:
|- src/
|--- index.js
|--- other.js
Run Code Online (Sandbox Code Playgroud)
我可以要求src/index.js
用require('mypackage');
,但我怎么能要求src/other.js
?
如果答案是require('mypackage/src/other');
,有没有办法让它成为我可以要求它require('mypackage/other');
(即教学节点源文件目录是什么模块?
我有两张桌子.我希望以这样的方式加入它们:对于最左边的表中的每个记录,只返回右表中的一个记录.我在下面列举了一个例子.我想避免使用子查询和临时表,因为实际数据大约是4M行.我也不关心最右边的表中哪个记录匹配,只要匹配一个或没有.谢谢!
表用户:
-------------
| id | name |
-------------
| 1 | mike |
| 2 | john |
| 3 | bill |
-------------
Run Code Online (Sandbox Code Playgroud)
表交易:
---------------
| uid | spent |
---------------
| 1 | 5.00 |
| 1 | 5.00 |
| 2 | 5.00 |
| 3 | 5.00 |
| 3 | 10.00 |
---------------
Run Code Online (Sandbox Code Playgroud)
预期产量:
---------------------
| id | name | spent |
---------------------
| 1 | mike | 5.00 |
| 2 | john …
Run Code Online (Sandbox Code Playgroud) 我理解MySQL中预准备语句的安全性好处.这里不需要涉及这个主题.我想知道它们的性能方面.
现在,我知道当使用预准备语句的查询在单个PHP脚本中执行两次时,它更快,因为查询只被解析一次,每次查询一次.客户端进行一次准备,然后使用二进制协议发送数据两次.二进制协议速度更快,而且您不必再次进行解析.
但是,我只想在一个PHP脚本中执行一次查询的情况呢?看起来使用准备好的声明会更糟糕,因为你要两次前往服务器,一次准备,一次发送数据.只需要解析一次的好处就丢失了,你第二次旅行就受到了惩罚.如果数据的二进制格式不够小,那么使用准备好的语句会丢失,对吗?
但是,我已经阅读了一些关于PHP的mysqli或PDO库做什么的相互矛盾的报道?它们中的任何一个是否跨脚本执行缓存预准备语句?服务器是否必须在后续页面加载时再次解析预准备语句?如果答案是否定的,那么语句不必在第二个页面加载上进行解析,那么即使您每页面加载仅执行一次查询,看起来准备好的语句也会更好.
请考虑MySQL版本之间是否有任何相关变化.您可以放心地假设我使用的是PHP 5.2
编辑:只是为了说清楚,我想要专门针对MySQL和PHP的答案,指定MySQL版本,如果这是不同的,并且只考虑性能,而不是易用性或安全性.
更新:我接受了我的答案,因为后续评论有一些好主意.我仍然有点失望,似乎没有人能够回答我提出的实际问题的症结.我猜有时答案真的是"这取决于".
所以我一直认为在Extra栏中看到"Using Where"是一件好事.然而,我正计划为我的同事准备一个棕色的包午餐来解释EXPLAIN,现在我不太确定.MySQL文档在关于"使用位置"的说明中说明了这一点:
WHERE子句用于限制哪些行与下一个表匹配或发送到客户端.除非您特意打算从表中获取或检查所有行,否则如果Extra值不是Using where并且表连接类型为ALL或index,则查询可能会出错.即使您正在为WHERE子句的所有部分使用索引,您也可以看到如果列可以为NULL则使用where.
这使我相信即使我的WHERE子句只包含索引的一部分,如果列可以具有NULL值,MySQL仍将检查行.
真的吗?如果是这样,如果我不需要它,我应该将列更改为不包括NULL吗?我会看到提速吗?
这个问题的标题不是那么清楚,但代码和问题很简单.
假设我想每天向用户展示一次广告.为了实现这一点,每次他们访问我网站上的页面时,都会检查某个memcache密钥是否存储了任何数据.如果是这样,请勿展示广告.如果没有,请将值"1"存储在该密钥中,到期时间为86400.
我可以用两种方式做到这一点:
//version a
$key='OPD_'.date('Ymd').'_'.$type.'_'.$user;
if($memcache->get($key)===false){
$memcache->set($key,'1',false,$expire);
//show ad
}
//version b
$key='OPD_'.date('Ymd').'_'.$type.'_'.$user;
if($memcache->add($key,'1',false,$expire)){
//show ad
}
Run Code Online (Sandbox Code Playgroud)
现在,似乎很明显b更好,它总是进行1个memcache调用.但是,"添加"与"获取"的开销是多少?这些并不是真正的比较...而我只是编写了这些数字,但是假设1加〜= 1集〜= 5得到努力,平均用户每天查看5页:
a: (5 get * 1 effort) + (1 set * 5 effort) = 10 units of effort
b: (5 add * 5 effort) = 25 units of effort
Run Code Online (Sandbox Code Playgroud)
总是进行添加呼叫会有意义吗?这是不必要的微优化吗?
我在header.php中有以下代码来回显正文的id:<body id="<?php echo $body; ?>">
它取自index.php中的变量:$ body ="home";
输出结果为:body id =""
有什么建议来解决这个问题
(我创建了var_dump($ body),值为"home",因此变量正常工作)
header.php:
<?php
/**
* The Header for our theme.
*
* Displays all of the <head> section and everything up till <div id="main">
*
* @package WordPress
* @subpackage Starkers
* @since Starkers 3.0
*/
?><!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<title><?php
/*
* Print the <title> tag based …
Run Code Online (Sandbox Code Playgroud) 我正在使用Mesos和Marathon来管理应用程序部署,并在Marathon https://github.com/mesosphere/marathon/issues/3783中遇到了这个错误,也就是说部署期间的领导者选举会扩展实例领导选举经常发生(大约每30分钟一次),所以我经常会遇到这个问题.
我知道每30分钟一次是非常不规律的,因为我已经升级到Marathon 1.3.10并且过去2天没有选举,但是多久一次是"正常"?领导人退位/选举是否在正常情况下发生,或者除非存在潜在问题,否则我应该期待0次选举?一位同事向我建议"领导人选举是正常的","一定数量的选举是正常的,也是可以预期的".我只是不相信,并且想肯定地知道.
javascript ×3
mysql ×3
php ×2
firefox ×1
ios ×1
join ×1
marathon ×1
memcached ×1
mesos ×1
mesosphere ×1
node.js ×1
npm ×1
optimization ×1
pdo ×1
performance ×1
sql ×1
variables ×1
webkit ×1
wordpress ×1