Какова цель% mdat (по сравнению с% udat) в Embperl? - PullRequest
3 голосов
/ 11 января 2011

Я видел, что при обработке сеанса упоминается хэш %mdat и %udat. В чем разница и когда и почему я должен использовать хэш %mdat?

1 Ответ

3 голосов
/ 11 января 2011

Как отмечено в Embperl POD ,

Вы можете сохранить любые данные в хеше %mdat, и если какой-либо запрос поступит в тот же документ Embperl, вы снова увидите те же значения в этом хэше.

Также обратите внимание, что формулировка «вы увидите» в POD выше несколько вводит в заблуждение, что, возможно, усугубило ваше замешательство.

Основная документация Embperl дает более точный ответ, который устраняет путаницу:

В следующий раз, когда любой пользователь перейдет на ту же страницу Embperl, Embperl заполнит хэш %mdat из Apache::Session теми же значениями, которые вы сохранили в последнем запросе к этой странице.

Обратите внимание, текст, который я выделил жирным шрифтом - любой пользователь . Типичные данные сеанса (хранящиеся в %udat) сохраняются и доступны только для конкретного пользователя .

Таким образом, %mdat действует как своего рода хранилище отдельных страниц, но не зависит от пользователя.

Чтобы ответить на ваш вопрос «когда», примером использования %mdat на практике будет счетчик посещений на страницу.

...