在谷歌的Chrome浏览器中运行我的(相当复杂的)JavaScript/jQuery应用程序,它似乎$(document).ready会在某些JavaScript文件尚未加载时触发.
相关代码(简化):
在我的HTML文件中
<script>var httpRoot='../../../';var verifyLoad = {};</script>
<script src="../../../globalvars.js"></script>
<script src="../../../storagekeys.js"></script>
<script src="../../../geometry.js"></script>
<script src="../../../md5.js"></script>
<script src="../../../serialize.js"></script>
...
<script src="../../../main.js"></script>
Run Code Online (Sandbox Code Playgroud)
作为除main.js之外的每个.js文件的最后一个语句:
verifyLoad.FOO = true; // where FOO is a property specific to the file
Run Code Online (Sandbox Code Playgroud)
例如
verifyLoad.jquerySupplements = true;
verifyLoad.serialize = true;
Run Code Online (Sandbox Code Playgroud)
在main.js中:
$(document).ready(function() {
function verifyLoadTest (scriptFileName, token) {
if (!verifyLoad.hasOwnProperty(token)) {
console.log(scriptFileName + ' not properly loaded');
};
};
verifyLoadTest('globalvars.js', 'globalvars');
verifyLoadTest('storagekeys.js', 'storagekeys');
verifyLoadTest('geometry.js', 'geometry');
verifyLoadTest('md5.js', 'geometry');
verifyLoadTest('serialize.js', 'serialize');
...
}
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,我看到其中一些触发器.这与我的理解不符$(document).ready.我错过了什么?
我正在尝试在我的Windows 7机器上安装cygwin.
我通过在http://www.cygwin.com/上开始安装来获得设置.我选择"从Internet安装"(链接到http://www.cygwin.com/setup.exe),然后在向导中连续选择:
我收到一条警告"当前的ini文件来自较新版本的setup.exe.如果您在安装时遇到任何问题,请从http://www.cygwin.com/setup.exe下载最新版本",但到目前为止据我所知,这正是我刚开始下载的内容.然后我得到解析错误.我不知道我哪里出错了,或者我会去哪里获得正确的setup.exe.有什么建议?
Javascript Array.sort函数是否异步?我不这么认为,但是当我运行以下代码时,它确实似乎是:
$('#alphabetical-order').data('sort-column', 'FileAlpha');
$('#first-numeric-order').data('sort-column', 'FileFirstNumeric');
$('#last-numeric-order').data('sort-column', 'FileLastNumeric');
$('#alphabetical-order, #first-numeric-order, #last-numeric-order').each(function() {
var $this = $(this);
$this.data('compare-function', function(row1, row2) {
console.log('column = ' + $this.data('sort-column')); // >> DEBUG 1
compareRowsBasedOnColumn(row1, row2, $this.data('sort-column'));
});
}).click(function() {
var $this = $(this);
var $content = $('table.sheetlist-content tr.content');
$content.sort($this.data('compare-function'));
console.log('$content.sort complete'); // >> DEBUG 2
$table_body = $('table.sheetlist-content tbody')
$table_body.html('');
for (i=0; i<$content.length; ++i) {
$table_body.append($content[i]);
}
saveAll(); // which POSTs to our server
});
Run Code Online (Sandbox Code Playgroud)
(如果需要的话,我可以提供compareRowsBasedOnColumn,但这就是名字所说的.)
在Firefox与Firebug调试运行,我看到帖子从我saveAll在控制台前的DEBUG 2上方,与穿插 …
由于未知原因,当我使用Google Chrome(版本9.0.597.84)时,开发人员工具未显示"存储"选项卡(例如,在http://www.html5rocks.com/tutorials/developertools中提及/说明)/ part1 /#toc-overview-storage和http://webdevlife.com/getting-started-with-localstorage-in-html5/),我需要检查和修改localStorage.任何想法我要做什么来获得这个选项卡或什么是解决方法?我知道我可以简单地转储localStorage,我可以编写代码来修改它,但这可能是我工作中持续关注的问题,我真的很想拥有一个合适的工具.