→ Пошук по сайту       Увійти / Зареєструватися

Поиск экземпляра API

Поиск реализации API — это также вполне стандартная процедура. Реализуется она следующими функциями – getAPIHandle(); getAPI(); findAPI(win);

 function getAPIHandle()
{
    if (apiHandle == null)
    {
        apiHandle = getAPI();
    }
    return apiHandle;
}

 function getAPI()
{
    var theAPI = findAPI(window);
    if ((theAPI == null) && (window.opener != null) && (typeof(window.opener) != "undefined"))
    {
        theAPI = findAPI(window.opener);
    }
    if (theAPI == null)
    {
        alert(UNABLE_TO_FIND_AN_API_ADAPTER);
    }
    return theAPI
}

 function findAPI(win)
{
    while ((win.API == null) && (win.parent != null) && (win.parent != win))
    {
        findAPITries++;
        //Примечание: 7 - это случайное число, однако этого количества попыток должно быть более чам достаточно
        if (findAPITries > 7)
        {
            alert(ERROR_FINDING_API_TOO_DEEPLY_NESTED);
            return null;
        }
        win = win.parent;
    }
    return win.API;
}

Как можно понять, изучив эти функции, конкретная реализация API запускается самим браузером. Именно браузер и является тем самым объектом «window», который передаётся как параметр в функцию «findAPI(win)».

Таким образом, браузер — это родительский объект по отношению к объекту, который содержит реализацию API. Файлы, которые являются реализацией API в конкретной LMS-системе, передаются браузеру от LMS тем же путём, что и сам обучающий контент — то есть непосредственно в момент соединения браузера клиента с сервером, на котором находится LMS-система. Далее эта реализация хранится на клиенте в течение всего сеанса работы с LMS.

загрузка...
Сторінки, близькі за змістом