我想知道我们是否应该在我们的仓库中跟踪node_modules或在检查代码时进行npm安装?
我只是想在jQuery中执行以下操作:
var newCanvas = $('<canvas/>',{'width':100,'height':200,'class':'radHuh'});
$(body).append(newCanvas);
Run Code Online (Sandbox Code Playgroud)
这工作(种类)并生成以下标记:
<canvas style="width:100px; height:200px;" class="radHuh"></canvas>
Run Code Online (Sandbox Code Playgroud)
由于大多数人可能知道canvas元素并不真正喜欢CSS维度但期望宽度和高度属性,因此这个对象创建失败了.
我知道我可以这样做:
var newCanvas = $('<canvas/>',{'class':'radHuh'}).attr({'width':100,'height':200});
Run Code Online (Sandbox Code Playgroud)
相反,但我只是想知道,如果有任何方式告诉jQuery,width并且height应该在创建元素时被视为属性$('element',{attributes})而不是CSS?
我在每个循环的jQuery中进行"重"画布操作,导致较慢的设备(IE和iPad)有时变得完全没有响应.
所以我想我可以使用下划线_.defer()来排列每个循环中的函数,如:
function handleAsset = _.defer(function(){
//weightlifting goes here (partly async)
});
$.each(assets, handleAsset);
Run Code Online (Sandbox Code Playgroud)
然而,这会抛出一个奇怪的错误(堆栈跟踪指向$.each):
Uncaught TypeError: Object 20877 has no method 'call'
Run Code Online (Sandbox Code Playgroud)
这种做法有缺陷吗?这是由于处理程序函数内部的异步操作吗?还有另一种/更好的方法来实现这一目标吗?
我刚刚在Gmail中打开开发工具时看到了这个片段:
var GM_TIMING_END_CHUNK1=(new Date).getTime();
Run Code Online (Sandbox Code Playgroud)
我通常会期待这样的事情,因为调用没有括号的构造函数是相当罕见的(至少我从未见过它直到现在):
var GM_TIMING_END_CHUNK1=new Date().getTime();
Run Code Online (Sandbox Code Playgroud)
要么
var GM_TIMING_END_CHUNK1=Date.now(); //newer browsers
Run Code Online (Sandbox Code Playgroud)
这样做有什么好处,行为有什么不同吗?这是完全相同的字符数量,所以简洁不是一个原因.
所以这可能需要很长时间,但我完全不知道可能导致此问题的原因:
我正在提供客户端JavaScript,它解析嵌入它的页面上的某些参数,使用这些参数构建URL并使用该URL将iframe注入页面,如:
var queryParams = {
param: 'foo'
, other: 'bar'
};
Run Code Online (Sandbox Code Playgroud)
变成了:
<iframe src="http://example.net/iframes/123?param=foo&other=bar"></iframe>
Run Code Online (Sandbox Code Playgroud)
这工作得很好,我每天提供大约150万个请求.然而,我最近注意到,在每天大约3.000个案例中,查询参数的值被洗牌,所以这样请求:
<iframe src="http://example.net/iframes/123?param=ofo&other=rba"></iframe>
Run Code Online (Sandbox Code Playgroud)
从日志来看,这与特定用户有关,并且每个请求都会重新发生字符的混乱,因此当用户使用脚本浏览具有多个页面的站点时,我可以看到这样的序列:
108.161.183.122 - - [14/Sep/2015:15:18:51 +0000] "GET /iframe/ogequl093iwsfr8n?param=3a1bc2 HTTP/1.0" 401 11601 "http://www.example.net/gallery?page=1" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"
108.161.183.122 - - [14/Sep/2015:15:19:07 +0000] "GET /iframe/ogequl093iwsfr8n?param=a21b3c HTTP/1.0" 401 11601 "http://www.example.net/gallery?page=2" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"
108.161.183.122 - - [14/Sep/2015:15:19:29 +0000] "GET /iframe/ogequl093iwsfr8n?param=ba132c HTTP/1.0" 401 11601 "http://www.example.net/gallery?page=3" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"
Run Code Online (Sandbox Code Playgroud)
401正在服务器期望的故意发生param=abc123.
我还注意到大多数错误都发生在Firefox和Safari中,而Google …
我正在尝试通过"Classic"NVP API设置PayPal Express Payment.
尝试使用cURL从我的服务器连接到PayPal-Sandbox,连接会在大约2分钟后停止并超时.
我正在使用来自文档的示例调用:
curl -v --insecure https://api-3t.sandbox.paypal.com/nvp -d "USER=platfo_1255077030_biz_api1.gmail.com&PWD=1255077037&SIGNATURE=Abg0gYcQyxQvnf2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf&METHOD=SetExpressCheckout&VERSION=78&PAYMENTREQUEST_0_PAYMENTACTION=SALE&PAYMENTREQUEST_0_AMT=19&PAYMENTREQUEST_0_CURRENCYCODE=USD&cancelUrl=http://www.yourdomain.com/cancel.html&returnUrl=http://www.yourdomain.com/success.html"
Run Code Online (Sandbox Code Playgroud)
Shell输出是:
* About to connect() to api-3t.sandbox.paypal.com port 443 (#0)
* Trying 173.0.82.83... Connection timed out
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host
Run Code Online (Sandbox Code Playgroud)
当我尝试通过PHP执行此操作时,curl我不会收到任何错误,只是一个空的资源句柄.
我可以轻松地从本地计算机和我可以访问的其他服务器执行请求(并获取正确的数据),因此我猜这是一些服务器端错误配置正在进行.不是服务员,我有点无能为力.
启用cURL并将以下内容记录在phpinfo:
libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6
Run Code Online (Sandbox Code Playgroud)
openSSL也已启用.此外,我在尝试连接到API的实时版本时遇到了同样的问题.
我正在建立一个网站,我有几个<video>元素(循环动画)作为我的设计的一部分(而不是一个实际的视频).这在桌面浏览器中运行良好,但我在移动设备上遇到了麻烦.
当我在Android或iOS设备(即移动webkit)上显示该网站时,我将获得操作系统的视频播放器外观,当我点击它们时,视频将以某种弹出方式打开.我知道我可以通过这样做来绕过自动播放限制:
window.onload = function() {
var pElement = document.getElementById("myVideo");
pElement.load();
pElement.play();
};
Run Code Online (Sandbox Code Playgroud)
但这将再次在一个单独的窗口中打开视频......
有没有人知道在移动设备上模拟/启用类似桌面的行为的可能性?谢谢!
编辑:
标记是基本的<video>-syntax btw:
<video autoplay loop>
<source src="vid.mp4" type="video/mp4" />
<source src="vid.ogg" type="video/ogg" />
<source src="vid.webm" type="video/webm" />
</video>
Run Code Online (Sandbox Code Playgroud) 我理解如何定义这样的函数:
function myfunc(x,y,z) {
alert("Just an example " + x + y + z)
}
Run Code Online (Sandbox Code Playgroud)
但不是这个:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
(function ($) {
$.fn.idle = function (x, y, z) {
alert("Just an example " + x + y + z)
}(jQuery));
</script>
Run Code Online (Sandbox Code Playgroud)
以上是我正在使用的库的一部分,但我根本无法理解这$.fn.idle一点.
它在做什么?它以某种方式定义了一个名为'idle'的函数,但是$.fn呢?那(function ($) {部分怎么样?我再次明白,$(document).ready(function() {但(function ($) {完全是外星人.这是一个简短的手吗?
(jQuery));底部有什么意义?
我正在构建一个PhoneGap应用程序.不幸的是,当部署到iOS设备和模拟器时,deviceready事件永远不会触发.我正在使用Phonegap 2.2.0.
当我将相同的代码部署到Android(cordova.js当然使用特定于Android的文件)时,应用程序将完美运行.
当我用devicereadyjQuery 替换它时,ready()app也会在iOS上加载,但它将无法访问特定于设备的API.
在cordova.js加载过程中,我会看到,我把它里面一个简单的警报消息,但deviceready永远不会触发和API都不会暴露.
我的HTML head:
<script type="text/javascript" charset="utf-8" src="js/cordova.js"></script> <!-- yes it is the iOS version -->
<script src="js/jquery-1.8.2.min.js"></script>
<script src="js/app.js"></script>
Run Code Online (Sandbox Code Playgroud)
我的JS:
function doStuff(){
//app functionality
}
document.addEventListener('deviceready', doStuff, false);
Run Code Online (Sandbox Code Playgroud)
但不知何故,东西只会在Android上完成......
我试图在包npm的目录中只下载一个文件npm install.
该目录看起来像:
+- dist/
+- 1.0.0/
+- 1.0.1/
+- ...lots of other dirs...
+- file.js
Run Code Online (Sandbox Code Playgroud)
我希望npm忽略所有内容,但file.js我尝试在我的内容中包含以下内容.npmignore:
dist/
!dist/file.js
Run Code Online (Sandbox Code Playgroud)
然而,dist当我安装软件包时,npm仍然会下载所有目录.我认为这应该是有效的,.gitignore但显然我在这里遗漏了一些东西.