![](/img/trans.png)
[英]How can I validate image sizes (expressed as e.g. “5X4”) using JavaScript?
[英]Can I put impose a time limit on JavaScript (e.g., using an iframe)?
我想運行一個有時間限制的外部JavaScript,這樣,如果花費的時間超過N秒,它將被停止。
一些瀏覽器(例如Firefox)已經通過對話框詢問您是否要允許腳本繼續運行。 但是,我正在尋找更多:
<iframe>
元素)。 我當時想,如果只有一個我可以附加到<iframe>
的屬性,這將非常方便-例如,類似js-time-limit="5000"
(我剛剛做了),但是我一直沒有能夠找到類似的東西。
這可能嗎? 要在瀏覽器中為JavaScript執行設置可配置的時間限制?
如果iframe正在進行計算工作,並且不需要訪問DOM,請使用網絡工作者: https : //developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers
這也是一個可以為您提取困難部分的庫! http://adambom.github.io/parallel.js
重要部分:
專用的Web工作人員為Web內容提供了一種在后台線程中運行腳本的簡單方法。
如果您需要立即終止正在運行的工作程序,則可以通過調用工作程序的terminate()方法來實現:
myWorker.terminate();
瀏覽器兼容性
Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
3 3.5 (1.9.1) 10 10.60 4
為了后代:我的最初目標是允許網站的用戶提交JS代碼並在有時間限制的情況下在后台運行它,例如,無限循環不會對CPU造成破壞。
我使用Joe建議的方法創建了一個名為Lemming.js的庫。 您可以這樣使用它:
var lemming = new Lemming('code to eval');
lemming.onTimeout(function() {
alert('Timed out!');
});
lemming.onResult(function(result) {
alert('Result: ' + result);
});
lemming.run({ timeout: 5000 });
您可以查看GitHub存儲庫以了解更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.