Написание интерфейса до того, как он понадобится (либо для тестирования, либо для архитектуры), является излишним.
Кроме того, написание интерфейса вручную - пустая трата времени. Вы можете использовать рефакторинг Resharper «Pull Members», чтобы позволить ему создать новый интерфейс из определенного класса в считанные секунды. Другие инструменты рефакторинга, которые интегрируются с IDE, также должны иметь аналогичную функциональность.
Механизм Javascript IE отвратителен, когда дело касается отладки. Вы можете попробовать включить отладку скриптов в дополнительных параметрах, а затем, если у вас установлена Visual Studio, она перейдет к месту ошибки ... если вам повезет. В других случаях вы ничего не получаете, особенно если код был eval () 'ed.
Еще одна особенность этих номеров строк заключается в том, что они не отражают, в каком файле происходит ошибка. У меня были случаи, когда номер строки был на самом деле правильным, но он находился в связанном файле .js, а не в основном файле.
Практически невозможно отладить это без живого примера, но одна вещь, которая часто вызывает ошибку «Недопустимый аргумент» в Internet Explorer, - это попытка установить неправильное значение для свойства стиля.
Примерно так:
document.getElementById("foo").style.borderWidth = bar + "px";
когда "bar" имеет значение null, или undefined, или является строкой "grandma", это вызовет его, поскольку "grandmapx" не является допустимым значением для свойства стиля borderWidth.
Попробуйте использовать Microsoft Script Debugger или DebugBar ( http://www.debugbar.com ), которые могут дать вам несколько лучших инструментов отладки IE6. Они всегда помогают мне с IE6.
Кроме того, происходит ли это в более новых версиях IE или только в IE6?
I run into this problem a lot too, and I've also resorted to commenting everything out until I find the problem. One thing that I find to be useful is to add a try/catch block to every javascript method. Sometimes I add an alert to tell what method the error came from. Still tedious, but easier than trial and error commenting. And if you add them every time you write a new method it saves a lot of time in the event errors like those occur.
function TestMethod()
{
try
{
//whatever
}
catch (ex)
{
ShowError(ex.description);
//alert("TestMethod");
}
}
Другая возможность:
Я много занимаюсь разработкой между двумя компьютерами, дома и на работе, поэтому я часто пишу себе по электронной почте или загружаю страницы с сервера для работы. Недавно я понял, что Vista имеет обыкновение в одностороннем порядке применять блокировку к определенным файлам, когда они загружаются определенным образом, без уведомления меня об этом.
В результате, например, HTML-страница хочет получить доступ к файлу .js в своем заголовке, но у нее нет разрешения на доступ к локальным файлам. В этом случае не имеет значения, что вы пишете в файле .js, браузер никогда его даже не прочитает, и в результате возникнет неприятная ошибка Line: 0
.
Поэтому, прежде чем искать в коде ошибки, проверьте свойства своей HTML-страницы и посмотрите, не заблокирована ли она ОС ....