我有一個Javascript代碼,它使用ajax從.php文件獲取響應。我使用「eval()」進行測試,一切正常(有點慢),但我發現了一個很好的技巧,我可以使用setTimeut。我仍然是初學者,但每個人都說eval是危險的,我應該避免這個,這就是爲什麼我正在尋找替代品。 setTimeut的工作比eval(速度)好得多,但安全嗎?從php文件中執行JS中的字符串,setTimeout vs eval()
那麼,使用setTimeout(result,0)來執行我從php文件(字符串)接收的代碼是否安全?還是比eval()更安全?請提前幫助,謝謝。
我編寫JavaScript代碼:
function sendAjax(vData) {
$.ajax({
method: 'GET',
url: '_process.php',
data: vData,
success : function (result) {
setTimeout(result, 0);
//old method eval(result);
}
});
}
$('.button1, .button2, .button3').click(function() {
sendAjax($(this).attr('class'));
});
和PHP文件
if (isset($_GET['button1'])) {
echo " $('.button1').hide(500, function() {
console.log('some1clickedbutton1');
});";
}
是,左右逢源的eval(結果)和setTimeout的(結果,0)起作用。 Eval是緩慢的,就像每個人都說「邪惡」,但我不知道setTimeout怎麼樣。 是啊謝謝你的幫助,但我想隱藏一些javascript代碼.php文件(我只是玩js和php文件),我不想在.js代碼中保留少數功能,這就是爲什麼我使用ajax):) – rockn21s