Когда функция или процесс обновляет глобальный массив, есть ли вероятность несогласованности, в то время как другой процесс пытается получить доступ к одному и тому же массиву в javascript тем временем? Если да, существует ли какой-либо механизм предотвращения, похожий на операционную систему, при попытке доступа к файлу или СУБД во время транзакции и т. Д.? Например: функция fun1 работает каждые 10 секунд & fun2 запускается нажатием кнопки:Несоответствие в глобальном массиве в javascript
<script>
a = new Array(); //a is global
setInterval(fun1,10000);
function fun2()
{
for(var j=0;j<1000;j++)
{
a[j]=j;
}
}
function fun1()
{
for(var i=0;i<1000;i++)
{
a[i]=i+1;
}
}
</script>
<input type="button" value="Update Array" onclick="fun2()">
Приведенный выше код представляет собой образец для демонстрации this.Merely нажатие кнопки не имеет никакого смысла в этом контексте, как только время - важный вопрос. Я только хочу знать факт, или у javascript есть какая-либо функция, чтобы предотвратить доступ к элементам массива какой-либо другой функцией до тех пор, пока все элементы не будут полностью обновлены. Извините, если я задам глупый вопрос!
JavaScript однопоточный, другого сценария не работает в то же время – Bergi
сказать, e = document.getElementsByTagName ('span «); Этот глобальный e хранит ссылку на все элементы span в документе. Если я добавлю динамически (AJAX) еще один диапазон, то длина e.length увеличивается на 1. @ Bergi – rosemary
продолжение формы выше: также у меня есть функция, которая собирает значения (i = 0; i
rosemary