Разработка технологии создания дистанционных курсов на примере курса "Администрирование DB2", страница 26

Создаем и делаем стартовым файл следующего содержания:

<html><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">

<HTML>

<HEAD><meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<TITLE>DB2</TITLE></HEAD>

<FRAMESET FRAMEBORDER=0 FRAMESPACING=0 cols="0,*" BORDER=NO MARGINHEIGHT=0 MARGINWIDTH=0>

            <frame name="CONTENT" noresize src="contents.htm"> //Фрейм управления процессом обучения. В файле contents.htm можно писать свои скрипты для обработки событий.

            <FRAME NAME=TEXT SRC="../templates/KOSTIK-startcourse.htm" MARGINHEIGHT=0 MARGINWIDTH=10> //Фрейм с курсом.

  </FRAMESET>

<NOFRAMES>

<BODY BGPROPERTIES="FIXED" BGCOLOR="#FFFFFF">

<BLOCKQUOTE><FONT FACE="VERDANA,ARIAL,HELVETICA" SIZE="2">

<P>Извините, но ваш браузер не поддерживает фреймы</P>

</FONT></BLOCKQUOTE>

</BODY>

</NOFRAMES>

</HTML>

3. Модифицируются функции handleEvent в js-шаблонах вопросов.

function handleEvent(action,name,args){

 if (!screenIsCompleted) {

  if (action==Engine.TIMEREVENT)

   handleTimerEvent();

  if (action==Engine.MOUSECLICK&&name.indexOf("Item")!=-1) {

   updateItemStatus(name);

   if(evaluateOnClick) {

    judgeAnswer();

    return true;

   }

  }

  else if (action==Engine.MOUSECLICK&&(name=="Done"||name==Engine.NEXT&&useNextForDone)) {

   parent.parent.frames(0).window.evaluateSingle(); !!!!!Добавляем

   return true;

  }

 }

 else if(screenIsCompleted&&action==Engine.MOUSECLICK&&name==Engine.NEXT){

  if(Engine.kg(fi,"")!="") {

   parent.engine.navigator.jumpToRefNum(fi);

   return true;

  }

 }

 else if(screenIsCompleted&&action==Engine.MOUSECLICK&&name.indexOf("Item")!=-1) {

  disableScreen();

  return true;

 }

 if (action=="audioSync"&&name=="Audio") {

  var sync=parseInt(args);

  if(sync.toString()=="NaN")

   return false;

  var itemObj=Engine.getGeneralObject("Item"+sync);

  if (Engine.kg(itemObj,null)!=null)

   itemObj.show();

 }

 if( action=="audioEOM"&&args=="eom"&&autoAdvance&&screenIsCompleted) {

  if (Engine.kg(fi,"")!="") {

    parent.engine.navigator.jumpToRefNum(fi);

    return true;

   }

 }

 if (screenIsCompleted) disableScreen();

 return false;

}

4. В файле contents.htm пишутся функции, ссылки на которые, были установлены в функциях handleEvent js-шаблонов вопросов. (текст файла contents.htm программы управления процессом обучения приведен в приложении)

3. РАСЧЕТНАЯ ЧАСТЬ. ОЦЕНКА СЛОЖНОСТИ АЛГОРИТМОВ

3.1 Постановка задачи

Для организации оценки уровня знаний обучаемых в области языка SQL было разработано специальное приложение, позволяющее проводить тестирование обучаемых на реальной базе данных. В данном приложение осуществляется логический контроль SQL выражений, вводимых обучаемым. Так как с приложением потенциально может одновременно работать очень большое количество обучаемы (несколько тысяч), то крайне важно провести максимальную оптимизацию приложения, с тем, чтобы сервер мог поддерживать одновременную работу как можно большего количества обучаемых.

Скорость работы приложения во многом определяется скоростью работы блока логического контроля, который создается непосредственно разработчиком приложения и  производит большой объем работы по анализу, вводимых обучаемыми ответов -  SQL строк. Часть приложения, которая обеспечивает передачу данных по сети, использует стандартные компоненты языка Delphi, работа которых уже оптимизирована фирмой Borland. Поэтому наибольших эффект от оптимизации может быть достигнут при оптимизации блока логического контроля.