我正在使用当前的Google Analytics跟踪代码,而在Firefox 59上我在控制台中收到此错误:
返回语句后无法访问的代码
在这个javascript:https://www.googletagmanager.com/gtag/js? id = UA-my-tracking-code:formattted
由于这个问题似乎不是可谷歌的,因此似乎其他人没有这个问题,我的猜测是我做错了什么.但这可能是什么?
我正在把片段放进去<head>,就像文档说的那样:
<!DOCTYPE html>
<html>
<head>
<title>some title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-my-tracking-code"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-my-tracking-code');
</script>
</head>
<body>
blah blah
</body>
</html>
Run Code Online (Sandbox Code Playgroud) debugging google-analytics developer-tools google-tag-manager
更新2:这个问题很乱,因为我认为ES6 class不会修改.protototype,它确实如此,因此这正是我想要的.
我接受了最广泛的答案,即使所有的答案和评论都应该指出我在一开始就正确的方向:)
谢谢你们!
旧:
在旧的JS,ES6之前,当我们学习制作"类"时:
function X() {
this.foo = function(){
}
};
var x = new X();
Run Code Online (Sandbox Code Playgroud)
我们也知道每次我们都会x = new X();得到'foo'方法的副本,在每个实例中这都是使用原型的一个好主意的原因之一.
现在,在ES6中我们有了这个新的酷类语法,但是具有相同的"问题",即这里复制了'f'方法.我们如何以ES6方式避免它?或者我们还需要使用.prototype吗?
class X{
f(){
return 'f';
}
}
console.clear();
let x1 = new X();
let x2 = new X();
x2.f = function() {return 'changed f';};
console.log(x1.f());//f
console.log(x2.f());//changed fRun Code Online (Sandbox Code Playgroud)
更新
我知道我们仍然可以使用.prototype.我的问题是了解如何使用更现代的方式来实现我想要的东西,即不具有复制的方法.我检查了关于JS原型的第一个教程,如果我的英语很差,请查找引文:) - 在https://hackernoon.com/prototypes-in-javascript-5bba2990e04b上找到:
(...)即使用构造函数创建的每个对象都将拥有自己的属性和方法副本.有两个函数fullName实例做同样的事情是没有意义的.为每个对象存储单独的函数实例会导致内存浪费.我们将看到我们如何解决这个问题.
你还提到这class ...只是一个语法糖,但是为什么......下面的函数FC,我们可以看到直接在fc1中看到"f"方法,并且
function FC() {
this.v = 42;
this.f …Run Code Online (Sandbox Code Playgroud)有一些遗留代码,我应该转换iso-8859-2为UTF-8.其中一个问题是strlen功能的广泛使用.我首先想到的是我将替换所有的出现次数的strlen来mb_strlen.
但是,我的一位同事说这是一个错误.我知道这两个函数之间的区别 - 如果字符串中的重音字符,strlen将返回它真正需要的字节数,而mb_strlen将返回字符数.
而现在,一位同事说,或许,也许某个地方存在返回需要与字符串中的字节数有关的情况,但他不能给我任何这种情况的例子.
strlen整个代码中大约有900个出现,分析每一个出现都需要几天时间.
问题是 - 当有人需要字节数而不是字符串中的字符数时,有什么可能的情况?
我有以下代码,其中我使用代理对象(代理)来尝试捕获方法调用和属性访问:
示例: https: //jsfiddle.net/r8j4fzxL/2/
(function() {
'use strict';
console.clear();
//some empty class where I want to trap methods props
class X {
//...
}
let proxy = {
get: function(target, prop, receiver) {
console.log('get called: ',
'target:', target,
'prop:', prop,
'receiver:', receiver
);
//this is OK, if we are called as a method.
//but it isn't when called as .prop - because, obviously, we return a function here.
return function(...args) {
console.log('wrapper args:', args);
return 42;
}
},
};
let …Run Code Online (Sandbox Code Playgroud) 我很确定这会被(正确地)标记为重复,因为这是一个非常基本和新手的问题,但我找不到答案oO
我想要的是一个固定的页脚,所以我这样做:
HTML:
<div class = 'content'>
<p>content</p>
<p>content</p>
<p>More and more content</p>
</div>
<footer>
<p>footer.</p>
</footer>
Run Code Online (Sandbox Code Playgroud)
样式:
.content {
color:green;
}
footer {
position: fixed;
left: 0;
right: 0;
bottom: 0;
height: 100px;
}
Run Code Online (Sandbox Code Playgroud)
但如果后者足够长,这个页脚将"覆盖"我的内容.所以我将'margin-bottom:110px'添加到.content,这〜等于页脚的高度:
.content {
margin-bottom: 110px;
}
Run Code Online (Sandbox Code Playgroud)
它"有效".但我想避免明确地将.content的边距设置为任何特定的绝对值.主要是因为页脚的高度因页面而异.
这就是我现在所拥有的:https://jsfiddle.net/kpion/nmdsuca4/6/ 点击"更改页脚大小"显示我的意思.
像.content {margin-bottom:calc(footer.height + 10px)}之类的东西正是我想要的,如果它有用的话.
顺便说一下,javascript只是解释我的问题,实际上我不想用javascript来实现我想要的.
BTW2:请记住,我真的希望页脚固定,即始终在那里,可见.因此,我们向下滚动然后看到它的大多数解决方案都不是我需要的.
正如主题所说的那样-PHP的opcache何时重新解析文件?是基于文件时间戳记还是基于文件哈希或其他内容?
编辑:如果我的问题不清楚,那么我将再试一次:)说一个文件“ xyz.php”已经在OPCache中。现在,我修改文件-很显然,必须再次对其进行解析并在缓存中进行更新。PHP如何知道应该这样做?