让我在Windows中创建的简单javascript在Linux中工作

让我在Windows中创建的简单javascript在Linux中工作,javascript,cross-platform,Javascript,Cross Platform,因此,我一直在尝试使用.csv文件作为数据源为手机游戏编写脚本。通过Windows8,它们在WindowsXP中一直运行良好。我在安装了Imacros/Greasemonkey的Firefox中使用了这个。然后,我决定在LinuxMint14中进行尝试,并使用最新版本的FF及其附带的所有应用程序进行设置。下面是我们(其他人和我,我被选为豚鼠)在运行它时的脚本,它只是冻结。没有错误或任何东西FF冻结并变得不响应,我必须强制关闭应用程序。我想得到一些关于可能原因的反馈,如果有可能的话,也许还有一些关

因此,我一直在尝试使用.csv文件作为数据源为手机游戏编写脚本。通过Windows8,它们在WindowsXP中一直运行良好。我在安装了Imacros/Greasemonkey的Firefox中使用了这个。然后,我决定在LinuxMint14中进行尝试,并使用最新版本的FF及其附带的所有应用程序进行设置。下面是我们(其他人和我,我被选为豚鼠)在运行它时的脚本,它只是冻结。没有错误或任何东西FF冻结并变得不响应,我必须强制关闭应用程序。我想得到一些关于可能原因的反馈,如果有可能的话,也许还有一些关于修复的方向

var numberOfUrls = 1591
var code = prompt("JUST CLICK OK DATA WILL OUTPUT UNDER iMacros/Downloads/extract.csv.")
while(true){
for(var i=1;i<numberOfUrls;i++){
var macro = "CODE: "
macro+= "SET !ERRORIGNORE YES"+"\n"
macro+= "SET !REPLAYSPEED fast"+"\n"
macro+= "SET !TIMEOUT_STEP 1"+"\n"
macro+= "SET !DATASOURCE ww_fresh_urls2.csv"+"\n"
macro+= "SET !DATASOURCE_COLUMNS 1" +"\n"
macro+= "SET !VAR1 "+code+"\n"
macro+= "SET !LOOP "+i+"\n"
macro+= "SET !DATASOURCE_LINE {{!LOOP}}"+"\n"
macro+= "URL GOTO={{!COL1}}"+"\n"
macro+= "WAIT SECONDS=.5"+"\n"
macro += "TAG POS=1 TYPE=DIV ATTR=CLASS:profileName EXTRACT=TXT" + "\n";
macro+= "WAIT SECONDS=.5"+"\n"
macro += "TAG POS=1 TYPE=SPAN ATTR=CLASS:codeCode EXTRACT=TXT" + "\n";
macro+= "WAIT SECONDS=.5"+"\n"
macro += "TAG POS=1 TYPE=DIV ATTR=CLASS:levelFrontTopArea EXTRACT=TXT" + "\n";
macro+= "WAIT SECONDS=.5"+"\n"
macro += "TAG POS=1 TYPE=SPAN ATTR=ID:cashCurrent EXTRACT=TXT" + "\n";
macro+= "WAIT SECONDS=.5"+"\n"
macro += "TAG POS=5 TYPE=SPAN ATTR=* EXTRACT=TXT" + "\n";
macro+= "WAIT SECONDS=.5"+"\n"
macro += "TAG POS=1 TYPE=A ATTR=TXT:home" + "\n"
macro+= "WAIT SECONDS=.5"+"\n"
macro+= "URL GOTO=http://wwar.storm8.com/setting.php?selectedTab=storm8"+"\n"
macro+= "WAIT SECONDS=.5"+"\n"
macro += "TAG POS=1 TYPE=TD FORM=ACTION:/setting.php?  formNonce=*&setTab1Badge=1&*                                                               ATTR=CLASS:usernameText EXTRACT=TXT" + "\n";
macro+= "WAIT SECONDS=.5"+"\n"
macro += "SAVEAS TYPE=EXTRACT FOLDER=* FILE=*" + "\n";
iimPlay(macro)
}
}
var numberOfUrls=1591
var code=prompt(“只需单击OK数据就会在iMacros/Downloads/extract.csv下输出。”)
while(true){
对于(var i=1;i
当我运行它时,它只是冻结。没有错误或任何东西FF冻结并变得无响应,我有

这是你的问题:

 while(true){
无限循环会阻塞浏览器。你做了一些非常糟糕的事情,现在糟糕的事情发生了

做点好事。我不知道你想做什么,但除非这是一个状态机,否则你不应该有一个无限循环

当我运行它时,它只是冻结。没有错误或任何东西FF冻结并变得无响应,我有

这是你的问题:

 while(true){
无限循环会阻塞浏览器。你做了一些非常糟糕的事情,现在糟糕的事情发生了


做点好事。我不知道你想做什么,但除非这是一个状态机,否则你不应该有一个无限循环。

.iim是imacros格式。它允许.js在imacros中运行,而diff being.js使用“循环”variable命令,其中.iim将循环作为imacros函数的一部分是的,它是一个用户脚本,在Firefox 19上使用greasemonkey在imacros中运行。字符串连接并不便宜。ASI也不值得依赖。iim是imacros格式。它允许.js在imacros中运行。js使用“循环”变量命令,其中.iim将循环作为imacros函数的一部分是的,它是一个在imacros中运行的用户脚本,在Firefox 19上使用greasemonkey。字符串连接并不便宜。ASI也不是用来依赖的。不是状态机…我从手机游戏帐户中提取数据,并将其下载到.csv中,以便f跟踪统计。这里没有大的国家机密。听起来你不需要无限循环。我通过使用datasource.csv中列出的URL数量的第一行来限制“循环”。它应该循环,然后将其提取到名为“extract”的target.csv。就像我在windows中说的,它运行得很好……没问题……但是windows使用了大量资源,我想在Linux中尝试一下,看看它是否能在Linux中更高效地运行……但是,它只是停止了。@GeorgeVeitl:几乎没有任何情况下你真的希望Javascript中有一个无限循环。因为JS是异步的,所以它不需要等待太多时间任何东西;它都会发出“嘿,浏览器,做这个”对于任何可能需要等待的事件,浏览器通常都不会启动任务,直到JS将控制权返回给它……因此在无限循环中,在等待一个永远不会发生的事件时,除了旋转轮子之外,你什么都不做。对于大多数可能需要无限循环的情况,你真正需要的是回调处理一个事件并设置下一个“迭代”。不是状态机…我从手机游戏帐户中提取数据并下载到.csv以跟踪统计数据。这里没有重大国家机密。听起来你不需要无限循环。我限制“循环”通过使用datasource.csv中列出的URL数量的第一行。它应该循环,然后将其提取到名为“extract”的目标.csv。就像我在windows中说的,它运行得很好……没问题……但是windows使用了大量资源,我想在Linux中尝试一下,看看它是否能在Linux中更高效地运行……但是,它只是停止了。@GeorgeVeitl:几乎没有任何情况下你真的希望Javascript中有一个无限循环。因为JS是异步的,所以它不需要等待太多时间任何东西;它都会发出“嘿,浏览器,做这个”对于任何可能需要等待的事件,浏览器通常都不会启动任务,直到JS将控制权返回给它……因此在无限循环中,在等待一个永远不会发生的事件时,除了旋转轮子之外,你什么都不做。对于大多数可能需要无限循环的情况,你真正需要的是回调处理事件并设置下一次“迭代”。