Javascript 页面因未知原因冻结

Javascript 页面因未知原因冻结,javascript,json,Javascript,Json,我最近一直在尝试。我试图创建一个从我的数据库中获取的函数(这样我就不必每次需要获取时都要键入长文本),当我运行代码时,我的页面突然冻结。根据我的调试,它在冻结之前甚至不运行代码。这是我的IDE的错误吗?如果有帮助的话,我正在使用HTML/CSS/JS function submit() { } console.log("test test test"); function getJSON() { console.log("beginning"); var out; co

我最近一直在尝试。我试图创建一个从我的数据库中获取的函数(这样我就不必每次需要获取时都要键入长文本),当我运行代码时,我的页面突然冻结。根据我的调试,它在冻结之前甚至不运行代码。这是我的IDE的错误吗?如果有帮助的话,我正在使用HTML/CSS/JS

function submit() {

}
console.log("test test test");
function getJSON() {
    console.log("beginning");
    var out;
    console.log("start");
    $.get("https://api.myjson.com/bins/1fsm75", function(data,  textStatus, jqXHR) {
        var json = JSON.stringify(data);
        console.log(json);
        out = json;
        console.log(out);
    });
    while(out == undefined) {}
    return out;
}
console.log("testarooni");
console.log(getJSON());

为了解决您面临的问题,我建议您检查浏览器中的“网络”选项卡(在Google Chrome中,按F12键打开),以了解GET call性能是否特别好

我还想建议,在任何情况下,使用异步调用执行相同的调用。 最好使用异步GET调用,因为它是非阻塞的

下面是一个异步GET调用示例,用于从您提供的端点检索数据:

<!DOCTYPE html>
<html>
    <head>
        <script>

            async function getDataAsync() {
                let response = await fetch('https://api.myjson.com/bins/1fsm75');
                let data = await response.json()
                return data;
            }

            getDataAsync()
                .then(data => console.log(data)); 

        </script>        
    </head>
    <body>
    </body>
</html>

异步函数getDataAsync(){
let response=等待取数('https://api.myjson.com/bins/1fsm75');
let data=wait response.json()
返回数据;
}
getDataAsync()
.then(data=>console.log(data));

因为这条线,它冻结了
while(out==未定义){}

看起来您正在尝试“等待$.get方法完成,调用它的回调并在继续之前分配out值”的行为

然而,Javascript是单线程的。这意味着,当它在
和(out==undefined){}
之间循环时,它会不断地循环,并且从来没有机会执行$.get的响应


您需要做的是处理$.get返回的承诺/可观察(我忘了是哪个)。

while(out==undefined){}假设要做什么?while(out==undefined){}就可以了。
$.get
是异步的。相反,请看一下使用jQuery还是包含jQuery?谢谢,我会试试!