这个片段是从JavaScript Ninja的Secrets中剪下来的.
function log() {
try {
console.log.apply( console, arguments );
} catch(e) {
try {
opera.postError.apply( opera, arguments );
} catch(e){
alert( Array.prototype.join.call( arguments, " " ) );
}
}
}
Run Code Online (Sandbox Code Playgroud)
我为什么要使用apply console.log.apply(console, arguments)和console.log(arguments)?之间的区别是什么?
我正在寻找一个好的设计模式来跟踪一堆不同的异步JavaScript活动(图像加载,多个AJAX调用,有序的AJAX调用等等),这比仅仅很多自定义回调和自定义状态变量更好.你建议我用什么?是否有任何类型的队列系统能够具有超越排序的逻辑?
我有一个启动序列,涉及许多异步进程(加载图像,等待定时器,进行一些ajax调用,进行一些初始化).一些异步流程可以同时启动(加载图像,AJAX调用),有些必须排序(运行AJAX调用#1,然后运行AJAX调用#2).现在,我已经完成了所有关闭回调函数和一系列全局状态的操作,这些状态跟踪已完成或未完成的内容.它有效,但它很乱,我有一些错误,因为确保你正确处理所有排序可能性和错误条件的复杂性.
当你遇到问题时,调试也很麻烦,因为它就像海森堡的不确定性原理.只要在序列中的任何位置设置断点,一切都会发生变化.您必须在代码中放置各种调试语句,以试图辨别正在发生的事情.
这是一个更具体的描述:
有三个图像加载.加载一个特定图像后,我想显示它.一旦显示一段时间后,我想显示第二张图像.第三个进入队列以便稍后显示.
有三个AJAX调用必须按连续顺序发生(一个的输出用作下一个输入的一部分).
当完成AJAX调用时,需要对结果进行大量JS处理,然后需要加载另外两个图像.
加载这两个图像时,还有一些显示内容要做.
完成所有操作后,您可以检查其中一个图像的显示时间,如果已经过了足够的时间,则显示下一个图像.如果没有,请在显示下一张图像之前再等一会儿.
每个步骤都有成功和错误处理程序.一些错误处理程序启动了仍可成功继续的备用代码.
我不希望任何人在这里遵循确切的过程,只是为了让人们了解这些步骤之间的逻辑类型.
编辑:我遇到了YUI的AsyncQueue,它不是我遇到的问题类型的完整解决方案,但是在同一个空间.对于排序或排序一堆异步操作似乎更多,但我不知道它对我所做的决策类型有何帮助.
我有一个SQLite数据库,我正在尝试使用PHP连接它.这就是我正在使用的:
<?php
$dbconn = sqlite_open('combadd.sqlite');
if ($dbconn) {
$result = sqlite_query($dbconn, "SELECT * FROM combo_calcs WHERE options='easy'");
var_dump(sqlite_fetch_array($result, SQLITE_ASSOC));
} else {
print "Connection to database failed!\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
警告:
sqlite_open()[function.sqlite-open]:文件已加密或不是C:\xampp\htdocs\deepthi\combadd\combadd_db.php第4行的数据库
连接数据库失败!
怎么了,怎么解决?
我可以下载并安装一封来自PyPI Python模块严格意义上的脚本中,不使用外壳在所有?
我使用非标准的Python环境,Autodesk Maya的Python解释器.这不是"easy_install",并且没有"shell",只有主Maya可执行文件调用的python脚本解释器.将ez_setup.py的内容复制并粘贴到脚本编辑器窗口并正确运行它会将easy_install安装到Maya的目录中,但脚本会错误地将Python解释器记录为"... maya.exe"而不是"... mayapy.exe "此外,使用easy_install需要一个shell.
目标是提供一个Python脚本,例如,将NumPy安装到Maya Python系统中.这可以通过将egg放入site-packages目录来完成,但这需要手动用户干预.最终用户在Maya环境之外必须做的任何事情基本上是不可触及的,尤其是弄乱文件系统.但是通过脚本搞乱文件系统?没关系.
有没有比ez_setup.py更优雅的东西+编辑生成的easy_install ... py的+子进程调用?我觉得这是一个基本功能.我通过pip在线查看程序模块安装的文档...但是需要首先安装pip!
在脚本范围内严格安装模块的最优雅方法是什么?
我有一个像这样的输入文件:
line 1
line 2
line 3
line 4
line 5
line 6
Run Code Online (Sandbox Code Playgroud)
我想用awk每几行插一个空白行; 例如,每两个:
line 1
line 2
line 3
line 4
line 5
line 6
Run Code Online (Sandbox Code Playgroud)
我怎么能得到awk每n行给我的文件写一个空行?
说我有一些像这样的JavaScript代码:
function breakpointInside() { console.log("How do I add a breakpoint here?"); }
breakpointInside();
Run Code Online (Sandbox Code Playgroud)
假设我无法编辑源文件.我想调试breakpointInside,但我无法弄清楚如何在行的中间添加断点.在这个例子中,步入函数是微不足道的,但是假设它是一个更复杂的脚本,这是不实际的.
javascript debugging google-chrome breakpoints web-inspector
我的数据库包含一个用户表.每个活跃用户都有唯一的用户名.我希望能够停用用户并释放他们正在使用的用户名,但将它们保存在同一个表中.
有没有办法只有条件地强制执行唯一性约束?
我需要帮助为下面的语言构建左线性和右线性语法?
a) (0+1)*00(0+1)*
b) 0*(1(0+1))*
c) (((01+10)*11)*00)*
Run Code Online (Sandbox Code Playgroud)
对于a)我有以下内容:
Left-linear
S --> B00 | S11
B --> B0|B1|011
Right-linear
S --> 00B | 11S
B --> 0B|1B|0|1
Run Code Online (Sandbox Code Playgroud)
它是否正确?我需要帮助b&c.
grammar computation-theory regular-language formal-languages
我是mac osx的新手.令我困惑的一件事是什么/Library或/System/Library文件夹存储?正如它的名字含义,我认为应该是类似的/lib或/usr/lib在Linux中.但事实并非如此.在它内部,它看起来更像应用程序包.并且所有命名都是特定于应用程序的,例如/Library/iChat.如果它们是特定于应用程序的,那么为什么要调用它们Library?通常在命名为时Library,它用于代码或资源共享目的.
我有一个最大长度的文本输入:
<input type="text" name="name" maxlength="50">
Run Code Online (Sandbox Code Playgroud)
这在我尝试的所有桌面浏览器上都运行良好,但最大长度似乎并未在移动浏览器上强制实施.
有没有办法让移动浏览器强制执行maxlength?我愿意在解决方案中使用JavaScript和/或jQuery.
javascript ×4
asynchronous ×1
awk ×1
blank-line ×1
breakpoints ×1
callback ×1
debugging ×1
distutils ×1
easy-install ×1
grammar ×1
html ×1
input ×1
jquery ×1
macos ×1
maxlength ×1
maya ×1
mysql ×1
php ×1
pip ×1
python ×1
sqlite ×1