大约一年前,我创建了一个增强控制台日志的插件,主要思想是在控制台中打印图像,例如,您可以添加一些图标或字形.
它工作得非常好,我看到现在有许多在线可用.问题是他们都没有工作.
我认为,在最后一次Chrome更新后我注意到了它.目前我有版本49.0.2623.112.
包括我在内的所有插件都以相同的方式工作:
console.log("%c" + dim.string, dim.style + "background: url(" + url + "); background-size: " + (this.width * scale) + "px " + (this.height * scale) + "px; color: transparent;");
Run Code Online (Sandbox Code Playgroud)
例如这一个:github上的插件链接
有谁知道我们如何在较新版本的chrome中在控制台中打印图像?
我正在尝试创建一个简单的 ui 窗口,我可以在其中快速测试 React 代码。所以这个想法是我在窗口中输入 react jsx 代码,而在另一个窗口中,我正在从该代码渲染应用程序。
输入(带有 react jsx 代码)被发送到 nodejs 进程,该进程将其转换为可以在浏览器 react 库中处理的普通 js 代码。我遇到的问题是这个错误regeneratorRuntime is not defined。
我目前的代码:
const babel = require("@babel/core");
// body comes from window input
console.log(
babel.transform(body, {
"presets": ["@babel/env", "@babel/react"],
"plugins": ["@babel/plugin-proposal-class-properties"]
}).code
);
Run Code Online (Sandbox Code Playgroud)
我读了几个关于这个错误的主题,大多数似乎建议添加 "@babel/plugin-transform-runtime"
所以它变成:
console.log(
babel.transform(body, {
"presets": ["@babel/env", "@babel/react"],
"plugins": ["@babel/plugin-proposal-class-properties", "@babel/plugin-transform-runtime"]
}).code
);
Run Code Online (Sandbox Code Playgroud)
但是此时 babel 转换返回的代码在开头包含这些:
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var …Run Code Online (Sandbox Code Playgroud) 当我启动我的应用程序时node app.js,运行的进程只有一个线程.无论运行的时间越长,为该进程制作的线程越多.问题是,当我想执行这样的特定代码时:
var io = require('socket.io')(process.env.PORT);
Run Code Online (Sandbox Code Playgroud)
它失败是因为信号是从多个线程发送的,因此代码未成功执行.
简单测试,如果这样做:
var io = require('socket.io')(9001);
var io = require('socket.io')(9002);
var io = require('socket.io')(9003);
var io = require('socket.io')(9004);
Run Code Online (Sandbox Code Playgroud)
它工作正常,但这段代码:
var cPort = 9001;
setInterval(function() {
var io = require('socket.io')(cPort);
cPort++;
}, 1000 * 60 * 2); // 1 sec * 60 seconds * 2 = 2 minutes interval
Run Code Online (Sandbox Code Playgroud)
不会被执行,因为2分钟后节点将有许多线程,他们都试图执行代码 - 因此你会看到error: address in use.
因此,尽管运行相同文件的多线程进程,我怎么能强制节点只执行一次这个代码?
06.11.2017编辑----
澄清问题:
我在问题中的意思是,我没有资源问题,如果我一次启动所有服务器(例如40台服务器),它们都已成功启动并无限期地工作.如果我只启动一个服务器,然后运行在需要时自动启动更多的代码,则会出现问题.在那一点上我总是看到address in use错误,显然地址在代码执行的时刻没有被使用.目前,我必须在周末手动启动更多服务器,因为有更多人在一周的其他日子使用服务和更少的服务器,我想创建基于人口启动和关闭服务器的自动化系统.
这是服务器启动的代码:
var cp = require('child_process'),
servers = [], …Run Code Online (Sandbox Code Playgroud) 我有一个巨大的HTML代码来扫描.到目前为止,我一直在使用preg_match_all从中提取所需的部件.从一开始的问题是它耗费了极大的CPU时间.我们最终决定使用其他一些方法进行提取.我读了一些preg_match可以在性能上进行比较的文章strpos.他们声称strpos击败正则表达式扫描仪的效率高达20倍.我以为我会尝试这种方法,但我真的不知道如何开始.
让我说我有这个HTML字符串:
<li id="ncc-nba-16451" class="che10"><a href="/en/star">23 - Star</a></li>
<li id="ncd-bbt-5674" class="che10"><a href="/en/moon">54 - Moon</a></li>
<li id="ertw-cxda-c6543" class="che10"><a href="/en/sun">34,780 - Sun</a></li>
Run Code Online (Sandbox Code Playgroud)
我想只从每个id中提取数字,只从a标签内容中提取文本(字母).所以我做这个preg_match_all扫描:
'/<li.*?id=".*?([\d]+)".*?<a.*?>.*?([\w]+)<\/a>/s'
在这里你可以看到结果:LINK
现在,如果我想将我的方法替换为strpos功能,该方法将如何?据我所知,strpos返回匹配发生的起始索引.但我怎么能用它来:
感谢您的所有帮助和提示;)
我最近正在尝试和学习 webgl 和着色器,因为我正在尝试为网站背景构建动画。我能够将简单的示例从 Shaderoy 移植到 Three.js 中来使用它。现在我试图更好地理解更高级的示例,并且我正在努力解决这个特定的示例:
https://www.shadertoy.com/view/4sfBWj
我知道要将着色器程序移植到 Three.js,您需要:
new THREE.PlaneGeometry()iTime为和制作制服iResolutiongl_FragColor和gl_FragCoordvoid main(void)如果一个或多个通道中使用了某种纹理,那么
new THREE.TextureLoader()为其创建统一的iChannel0基本的例子可以很好地配合上面的例子。然而我链接的有:
这两个都还包括着色器程序和运行它们的主要函数,我该如何处理它才能将其移植到 Three.js?
我目前的进展:
var container;
var camera, scene0, scene1, scene2, renderer;
var uniforms0, uniforms1, uniforms2;
var startTime;
var renderTarget0, renderTarget1;
var clock = new THREE.Clock();
init();
animate();
function init() {
container = document.getElementById( 'container' );
startTime = Date.now();
camera = new THREE.Camera();
camera.position.z = …Run Code Online (Sandbox Code Playgroud)几天前,我开始为我的项目实现简单的安全功能,以防止用户查看其他用户添加到数据库的客户.当我这样做时,我感到困惑,因为我意识到标准的逻辑运算符以奇怪的方式工作.
这是我最初写的代码:
if($current_user_id != $session_user_id || access_level($session_user_id) != 3) {
header('Location: logout.php');
exit();
}
Run Code Online (Sandbox Code Playgroud)
这意味着,如果您尝试查看的存储客户不属于您或您的访问级别不是3(管理员),您将被注销.它应该按照这样工作:
http://www.w3schools.com/php/php_operators.asp
他们说这||意味着"如果条件1或条件2都是真的则为真",所以如果任何条件没有失败,它应该允许访问.当然不是,脚本表现为只写入第一个条件,这意味着如果您是管理员,那么您的访问级别为3而您正在查看的不是您的客户 - 您仍然会被注销.
这是一个小的修改,开始工作:
if($current_user_id != $session_user_id && access_level($session_user_id) != 3) {
header('Location: logout.php');
exit();
}
Run Code Online (Sandbox Code Playgroud)
切换到&&"如果条件1和条件2都为真,则为真",它开始正常工作,这意味着您可能不是客户的所有者,但如果您是管理员,您将被允许访问而不会注销.
在这一点上,我害怕我向后理解它,有人可以解释为什么它看起来不合逻辑吗?它究竟是如何工作的?先感谢您.
我试图准备一些功能来过滤和排序通过 ajax 从数据库返回的数据,但我无法解决一个问题。
我在许多网站和 Web 应用程序上看到过非常有趣的处理文本输入字段的方式,它的工作方式就像你输入一些内容,当你输入时什么也没有发生,但如果你停下来 3 秒钟,它就会启动并执行 ajax 请求,所以我开始尝试许多内置 jquery 函数,但似乎没有一个是这样工作的。
keyup激发你提供给现场的每个角色,因此不行
change需要您单击字段外部才能启动,这是糟糕的解决方案
mouseleave不适用于文本输入字段,当您离开输入时什么也不会发生
mouseout好吧,这个有效,当我将鼠标移出字段时,它会启动,但每次用户调整他的研究以将鼠标移入和移出时,它仍然需要用户,这比change方法更糟糕
input, keypress,keydown工作原理相同,因为keyup它们只是外观上的差异,但方法保持不变,所以不用去
因此,我想要实现的方法是在您停止打字后一段时间启动的方法,并且不需要任何鼠标移动或单击,尽管我不知道如何处理它。
超文本标记语言
<input type="text" class="adjust" />
Run Code Online (Sandbox Code Playgroud)
JavaScript
$('.adjust').on('change', function() {
alert('event has fired');
});
Run Code Online (Sandbox Code Playgroud)
如果有人愿意帮忙,我准备了一些初步的 jsfiddle 来进行实验:
根据这篇文章:https://medium.com/@bluepnume/learn-about-promises-before-you-start-using-async-await-eb148164a9c8
似乎可以使用以下语法:
let [foo, bar] = await Promise.all([getFoo(), getBar()]);
Run Code Online (Sandbox Code Playgroud)
用于多个承诺执行.但是在使用它的时候我得到了Uncaught SyntaxError: Unexpected identifier.
我如何使用async/await和promise.all实现多个同时执行的操作,并通过响应解决.
----- EDITED
我在里面使用的功能promise.all就是这个:
async function getJson(callback) {
try {
let response = await fetch('URL_LINK_HERE');
let json = await response.json();
return json;
} catch(e) {
console.log('Error!', e);
}
}
Run Code Online (Sandbox Code Playgroud)
作为测试领域,我正在使用谷歌浏览器版本 60.0.3112.113