我正在使用Google Chrome扩展程序,该扩展程序使用内容脚本修改某些页面.为了了解应用这些更改的时间和地点,我们正在研究谷歌分析,因为我们已将其用于其他网络媒体资源.
我们通过清单文件包含ga.js库,并在我们对页面应用更改时触发带有同步页面调用的_trackPageview.
var pageTracker = _gat._getTracker("UA-our-UA");
pageTracker._setDomainName("none");
pageTracker._setAllowLinker(true);
pageTracker._trackPageview(window.location.href);
Run Code Online (Sandbox Code Playgroud)
麻烦的是,不同域中的每个pageView都算作新访问和访问者.它有办法绕过那个吗?例如,它在浏览器中使用chrome扩展sqlite数据库或键值存储来存储唯一的用户ID并独立访问id域.这可能吗?
谢谢
我使用sqlite DB作为webapp的存储系统.我一直在使用应用程序中直接从查询返回的对象.例如:
function get_book_by_id(id,successCallback,errorCallback)
{
function _successCallback(transaction, results)
{
if(results.rows.length==0) {successCallback(null);}
else
{
book=results.rows.item(0);
successCallback(book);
}
}
db.transaction(
function (transaction) {
transaction.executeSql("SELECT id,title,content,last_read from books where id=?;",[id], _successCallback, errorCallback);
});
}
Run Code Online (Sandbox Code Playgroud)
这将返回一个具有给定id的对象,所有列都作为属性提供.尼斯.我刚才想到的问题是结果集对象的所有属性都是不可变的.因此,例如,如果我想要更改属性'title'它没有任何效果,这在我看来毫无意义.例:
get_book_by_id(1,handle,error);
function handle(book)
{
//THIS DOESN'T WORK, book.title is still what it was.
book.title=book.title+"more text";
}
Run Code Online (Sandbox Code Playgroud)
我当然可以将我的所有数据库对象转换为可变对象,但我宁愿不这样做.
这是预期的行为吗?我可以请求可变对象吗?
我在Mac OS X上使用谷歌浏览器9.0.
我正在研究谷歌浏览器扩展程序,我正在尝试将与扩展程序捆绑在一起的图像加载到画布中.
var canvas = document.createElement('canvas');
canvas.width = 470;
canvas.height = 470;
var context = canvas.getContext('2d');
var image = new Image();
image.addEventListener('load', function(){
//process
});
image.src = chrome.extension.getURL("asset/gotcha.png");
Run Code Online (Sandbox Code Playgroud)
当我在内容脚本中执行代码时,我得到:
Unable to get image data from canvas because the canvas has been tainted by
cross-origin data.
Run Code Online (Sandbox Code Playgroud)
有办法避免这种情况吗?我已经成功地将图像,音频,视频和闪存直接嵌入到目标站点中而没有任何问题.资源列在清单文件中的web_accessible_resources下.
javascript google-chrome canvas webgl google-chrome-extension
我有一个 postgres 表,其中包含数据,其中主键已由注入数据的代码设置。假设主键是 0..49。
如何指示 postgres 在下一次插入的主键列上从 50 开始?目前,所有没有设置主键的插入都会导致重复的 ID 问题,因为它从 0 开始(我假设)。
我喜欢在渲染ractive模板时提取一些远程数据.由于请求的异步性质,没有数据使其成为输出.我怎么能做到这一点?
var ractive = new Ractive({
debug: true,
el: 'container',
template: '#template',
data:
{
chapters:chapters,
load_text: function(path)
{
$.get(path, function( text ) {
return text;
});
}
}
});
Run Code Online (Sandbox Code Playgroud) 在正在作为NSURLSessionDelegate的控制器中执行后台URLSession的IOS9应用程序上工作。这是我的启动方式:
self.session_data = [[NSMutableData alloc] init];
NSURL *url = [NSURL URLWithString:src];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLSessionConfiguration *backgroundConfigObject = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier: @"myBackgroundSessionIdentifier"];
self.session = [NSURLSession sessionWithConfiguration: backgroundConfigObject delegate: self delegateQueue: [NSOperationQueue mainQueue]];
self.download = [self.session dataTaskWithRequest: request ];
[self.download resume];
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。我实现了三种委托方法。首先调用“ didReceiveData”,然后存储数据。
- (void)URLSession:(NSURLSession *)session
dataTask:(NSURLSessionDataTask *)dataTask
didReceiveData:(NSData *)data{
NSLog(@"%s",__func__);
[self.session_data appendData:data];
}
Run Code Online (Sandbox Code Playgroud)
在那之后,立即调用“ didCompleteWithError”。永远不会调用'completionHandler'处理程序。
关于“ didCompleteWithError”消息的困惑在于,实际的错误对象为nil。我已经看到一些类似的未解决的问题。加载时我不会离开控制器/视图。我需要将该功能移至AppDelegate吗?
我喜欢使用SuperTest来处理我的身份验证系统,如下所示:
const request = require('./valid_access_token')(require('supertest'));
request(app)
.get('/v1/bots')
.valid_token()
.expect('Content-Type', /json/)
...
Run Code Online (Sandbox Code Playgroud)
valid_token() 将插入有效的访问令牌
module.exports = function (Request) {
const Token = require('../../../app/v1/models/loader')('token');
const UserFactory = require('../fixtures/user');
Request.prototype.valid_token = function()
{
return UserFactory.createAsync('user')
.then(function(user){
return new Token({username: user.username}).createWeeklyAsync()
.then(function(userToken){
this.set("access-token",userToken[0].token);
return this;
})
})
}
return Request;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,我收到此错误:
TypeError: request(...).get(...).valid_token is not a function
Run Code Online (Sandbox Code Playgroud)
我尝试了各种不同的方法,但没有运气。
我注意到在看似相同的总体上存在巨大的性能差异,至少在概念上是这样。测试是在一个简单的集合结构上进行的,该结构有一个 _id、一个名称和一个createdAt,但其中有 2000 万个。在createdAt上有一个索引。它托管在 mlab 集群上,版本为 3.6.9 WiredTiger。
我正在尝试使用聚合进行简单的分页,我知道我可以使用查找和限制,但我喜欢向管道添加更多元素,我给出的示例非常精炼。
db.getCollection("runnablecalls").aggregate([
{
$facet: {
docs: [
{ $sort: {createdAt: -1} },
{ $limit: 25 },
{ $skip: 0 },
],
page_info: [
{ $group: { _id: null, total: { $sum: 1 } }
}
],
}
}
])
Run Code Online (Sandbox Code Playgroud)
这几乎需要40s. 现在,如果我将$sort和移到$limit刻面之外,则需要0.042s.
db.getCollection("runnablecalls").aggregate([
{ $sort: {createdAt: -1} },
{ $limit: 25 },
{
$facet: {
docs: [
{ $skip: 0 },
],
page_info: [
{ …Run Code Online (Sandbox Code Playgroud) 我一直在使用 Flux 查询语言解决 influxDB 中的时间分组问题。我可以用生成的数据来说明,从 2021 年 1 月 1 日到 2021 年 1 月 5 日,每天一个条目。
import "generate"
data = generate.from(
count: 5,
fn: (n) => n + 1,
start: 2021-01-01T00:00:00Z,
stop: 2021-01-06T00:00:00Z,
)
data
|> range(start: 2021-01-01T00:00:00Z, stop: 2021-01-05T05:00:00Z)
Run Code Online (Sandbox Code Playgroud)
生成:
| _桌子 | _价值 | _开始 | _停止 | _时间 |
|---|---|---|---|---|
| 0 | 1 | 2021-01-01T00:00:00.000Z | 2021-01-05T23:59:00.000Z | 2021-01-01T00:00:00.000Z |
| 0 | 2 | 2021-01-01T00:00:00.000Z | 2021-01-05T23:59:00.000Z | 2021-01-02T00:00:00.000Z |
| 0 | 3 | 2021-01-01T00:00:00.000Z | 2021-01-05T23:59:00.000Z | 2021-01-03T00:00:00.000Z |
| 0 | 4 | 2021-01-01T00:00:00.000Z | 2021-01-05T23:59:00.000Z | 2021-01-04T00:00:00.000Z |
| 0 | 5 | 2021-01-01T00:00:00.000Z | 2021-01-05T23:59:00.000Z | 2021-01-05T00:00:00.000Z |
现在我每天查询数据并汇总
import "generate"
data = generate.from(
count: 5, …Run Code Online (Sandbox Code Playgroud) 在Windows Phone 7上从移动互联网浏览器打开地图的最佳做法是什么?在BlackBerry上,您使用JavaScript方法,在Android/iOS上,您只需链接到Google地图网址即可.
我打算将打开地图的不同方式整合到我的移动地理javascript库中,并且没有Windows手机设备.
http://code.google.com/p/geo-location-javascript/
谢谢Stan Wiechers
我有一个postgres表,其中包含一个名为shape的多边形列.为了确定一个点是否在我内部运行
select * from areas where shape @> point '(1,1)';
Run Code Online (Sandbox Code Playgroud)
这一切都很好并且在我的ruby on rails app上工作,但它在我的RSpec测试中失败了.当我查看我的日志时,我发现此错误为源
PGError: ERROR: operator does not exist: character varying @> point
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)
使用数据库工作的所有其他50多个测试,只有这一个保释.它再次适用于代码和控制台.测试环境都已正确设置.
我的问题: - 如何将比较科目投入工作? - 为什么它只会在测试中失败?
使用 API 将某些非常简单的内容发布到 github 时,我收到“内容无效 Base64”错误。内容是
unit = $("<li class='s clearfix'></li>");
Run Code Online (Sandbox Code Playgroud)
我正在使用 Base64.urlsafe_encode64 对内容进行编码。
content = 'unit = $("<li class=\'s clearfix\'></li>")';
url = "https://api.github.com/repos/#{github_user}/#{github_repo}/contents/#{path}"
RestClient.put(url,
{
message: "my message",
content: Base64.urlsafe_encode64(content),
encoding:"base64" }.to_json,
{
params:{access_token:access_token
},accept:'json'}){ |response, request, result|
puts response.code
puts response
}
Run Code Online (Sandbox Code Playgroud)
我得到这个回应:
422
{"message":"content is not valid Base64",
"documentation_url":"https://developer.github.com/v3/repos/contents/"}
Run Code Online (Sandbox Code Playgroud)
我不明白这对 github 来说如何不能是有效的 base64。并不是所有提交的数据都会发生这种情况。
content='unit = $("<li class=\'s clearfix\'></li>")'
Base64.urlsafe_decode64(Base64.urlsafe_encode64(content))==content
=> true
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在尝试将 macOS Catalina 上的 Visual Studio Code 中的调试器用于节点应用程序。我创建了一个非常简单的例子来说明我的情况。
索引.js
require('http').createServer( (request, response) => {
response.writeHead(200, {'Content-Type': 'text/plain'})
response.end('Hello World\n');
response.end();
}).listen(3000);
Run Code Online (Sandbox Code Playgroud)
文件
FROM node:12.14.0-alpine
COPY . /src
CMD ["node","--inspect=0.0.0.0", "src/index.js"]
Run Code Online (Sandbox Code Playgroud)
我构建了 Dockerfile
docker build . -t debugtest
Run Code Online (Sandbox Code Playgroud)
然后运行它
docker run -p 3000:3000 -p 9229:9229 debugtest
Run Code Online (Sandbox Code Playgroud)
我可以访问http://localhost:3000/。
我在 index.js 中设置了一个断点。
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Attach",
"port": 9229,
"skipFiles": [
"<node_internals>/**"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
现在,当我以可视化代码启动调试器时,断点的红点消失,并出现“断点设置但尚未绑定”。
我在各个地方都看到过这个问题,但没有一个解决方案有效。当我在 docker 之外运行节点进程时, …
javascript ×7
database ×2
postgresql ×2
base64 ×1
canvas ×1
debugging ×1
docker ×1
geocoding ×1
github-api ×1
html5 ×1
influxdb ×1
ios ×1
ios9 ×1
map ×1
mocha.js ×1
mongodb ×1
networking ×1
node.js ×1
objective-c ×1
performance ×1
ractivejs ×1
rest ×1
rspec ×1
ruby ×1
sqlite ×1
superagent ×1
supertest ×1
testing ×1
time-series ×1
webgl ×1
wiredtiger ×1