Попытка подключения к localhost:
SQLSTATE[HY000] [2002] No such file or directory
Попытка подключения к 127.0.0.1:
SQLSTATE[HY000] [2002] Connection refused
OK, просто комментируйте / удаляйте следующую настройку из my.cnf (на OS X 10.5: /opt/local/etc/mysqlxx/my.cnf
), чтобы получить:
[mysqld]
# skip-networking
Конечно, остановите и запустите MySQL Server.
В Opera свойству script.readyState нельзя доверять. Например, readyState "loaded" может быть запущено до запуска сценария в Opera 9.64.
Я выполнил тот же тест в Opera 9.64 и Opera 10, но с разными результатами.
В Opera 9.64 , обработчик onreadystatechange запускается дважды, один раз до и один раз после запуска скрипта. Свойство readyState "загружено" в обоих случаях, что означает, что этому значению нельзя доверять для определения конца загрузки скрипта:
# Fri Dec 18 2009 17:54:43 GMT+0100
# Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1
Test for script.readyState behavior started
Added script with onreadystatechange handler
readystatechange: loaded
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
readystatechange: loaded
В Opera 10 обработчик onreadystatechange по-прежнему запускается дважды со значением "загружено", но оба раза после запуска сценария:
# Fri Dec 18 2009 18:09:58 GMT+0100
# Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10
Test for script.readyState behavior started
Added script with onreadystatechange handler
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
readystatechange: loaded
readystatechange: loaded
Эти различные варианты поведения указывают на то, что onreadystatechange не является надежным способом определения окончания загрузки сценария в Opera. Поскольку Opera также поддерживает прослушиватель onload, вместо него следует использовать этот другой механизм.
На основе результатов этих тестов onreadystatechange следует использовать только для определения конца загрузки скрипта в Internet Explorer, и его не следует устанавливать в другие браузеры.
это означает, что этому значению нельзя доверять для определения конца загрузки скрипта:# Fri Dec 18 2009 17:54:43 GMT+0100
# Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1
Test for script.readyState behavior started
Added script with onreadystatechange handler
readystatechange: loaded
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
readystatechange: loaded
В Opera 10 обработчик onreadystatechange по-прежнему запускается дважды со значением «загружено», но оба раза после запуска скрипта:
# Fri Dec 18 2009 18:09:58 GMT+0100
# Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10
Test for script.readyState behavior started
Added script with onreadystatechange handler
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
readystatechange: loaded
readystatechange: loaded
Эти различное поведение указывает на то, что onreadystatechange не является надежным способом определения окончания загрузки скрипта в Opera. Поскольку Opera также поддерживает прослушиватель onload, вместо него следует использовать этот другой механизм.
На основе результатов этих тестов onreadystatechange следует использовать только для определения конца загрузки скрипта в Internet Explorer, и его не следует устанавливать в другие браузеры.
это означает, что этому значению нельзя доверять для определения конца загрузки скрипта:# Fri Dec 18 2009 17:54:43 GMT+0100
# Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1
Test for script.readyState behavior started
Added script with onreadystatechange handler
readystatechange: loaded
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
readystatechange: loaded
В Opera 10 обработчик onreadystatechange по-прежнему запускается дважды со значением «загружено», но оба раза после запуска скрипта:
# Fri Dec 18 2009 18:09:58 GMT+0100
# Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10
Test for script.readyState behavior started
Added script with onreadystatechange handler
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
readystatechange: loaded
readystatechange: loaded
Эти различное поведение указывает на то, что onreadystatechange не является надежным способом определения окончания загрузки скрипта в Opera. Поскольку Opera также поддерживает прослушиватель onload, вместо него следует использовать этот другой механизм.
На основе результатов этих тестов onreadystatechange следует использовать только для определения конца загрузки скрипта в Internet Explorer, и его не следует устанавливать в другие браузеры.
но оба раза после запуска сценария:# Fri Dec 18 2009 18:09:58 GMT+0100
# Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10
Test for script.readyState behavior started
Added script with onreadystatechange handler
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
readystatechange: loaded
readystatechange: loaded
Эти разные варианты поведения указывают на то, что onreadystatechange не является надежным способом определения окончания загрузки сценария в Opera. Поскольку Opera также поддерживает прослушиватель onload, вместо него следует использовать этот другой механизм.
На основе результатов этих тестов onreadystatechange следует использовать только для определения конца загрузки скрипта в Internet Explorer, и его не следует устанавливать в другие браузеры.
но оба раза после запуска сценария:# Fri Dec 18 2009 18:09:58 GMT+0100
# Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10
Test for script.readyState behavior started
Added script with onreadystatechange handler
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
readystatechange: loaded
readystatechange: loaded
Эти разные варианты поведения указывают на то, что onreadystatechange не является надежным способом определения окончания загрузки сценария в Opera. Поскольку Opera также поддерживает прослушиватель onload, вместо него следует использовать этот другой механизм.
На основе результатов этих тестов onreadystatechange следует использовать только для определения конца загрузки скрипта в Internet Explorer, и его не следует устанавливать в другие браузеры.
В Firefox, Safari и Chrome никогда не вызывается обработчик onreadystatechange.
Я создал короткий тестовый пример, создав динамический скрипт только с установленным обработчиком onreadystatechange:
<script type="text/javascript" language="javascript">
bezen.log.info(new Date(),true);
bezen.log.info(navigator.userAgent,true);
// Activate logs
bezen.log.on();
bezen.log.info('Test for script.readyState behavior started');
var script = document.createElement('script');
script.src = 'test1.js';
script.onreadystatechange = function(){
bezen.log.info('readystatechange: '+script.readyState);
};
document.body.appendChild(script);
bezen.log.info('Added script with onreadystatechange handler');
</script>
Я выполнил тест на локальном файле в Firefox 2, Firefox 3, Firefox 3.5, Safari 3, Safari 4 и Chrome 3 и получили аналогичные результаты (здесь журналы, записанные в FF 3.5):
Fri Dec 18 2009 17:53:58 GMT+0100
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6
Test for script.readyState behavior started
Added script with onreadystatechange handler
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
onreadystatechange никогда не вызывается. В этих браузерах только прослушиватель onload полезен для определения конца загрузки скрипта, onreadystatechange не требуется.
В Internet Explorer обработчик onreadystatechange запускается, как и ожидалось, после завершения сценария.
Я выполнил тот же тест в Internet Explorer 6, Internet Explorer 7 и Internet Explorer 8 с аналогичными результаты в этих трех браузерах (здесь журналы, записанные в Internet Explorer 6):
Fri Dec 18 18:14:51 UTC+0100 2009
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Test for script.readyState behavior started
Added script with onreadystatechange handler
test1.js: Start
test1.js: Start of closure
test1.js: End of closure
readystatechange: complete
Здесь, при тесте с использованием локального файла, readyState всегда является "завершенным", и оно остается таким же после нескольких обновлений страницы.
] Однако, как отмечено в этой публикации Николаса Закаса , вы также можете наблюдать «загружено» и «завершено» или просто «загружено» при различных обстоятельствах.