Хорошо, newQuestion
и первые setTimeout
- это всего лишь шаблонный код, чтобы заставить что-то работать для тестирования. Пожалуйста, игнорируйте. Второй setInteval - то, где мы смотрим на наш атрибут data
. Этот атрибут соответствует стандарту HTML. и могут быть доступны через [HTMLElement].dataset
. Мы проверяем время нашей публикации против текущей. В одном методе.
const newQuestion = () => {
let target = document.querySelector('.questions');
let question = document.createElement('div');
question.className = 'question';
question.setAttribute('data-question-date', Date.now());
question.innerHTML = '<span>Test Question - <span><span class="age">Just Now</span>';
target.appendChild(question);
};
document.addEventListener('DOMContentLoaded', () => {
setInterval(() => {
newQuestion();
}, 5000);
setInterval(() => {
let questions = document.querySelectorAll('.question');
questions.forEach(q => {
let dateofQ = q.dataset.questionDate;
let age = Math.floor((Date.now() - dateofQ)/1000);
console.log(`age: ${age}`);
let ageElement = q.querySelector('.age');
//do just 20 secs, so we don't have to wait.
if(age < 20) {
ageElement.innerHTML = 'Just now';
} else if (age < 300) {
ageElement.innerHTML = 'Less than 5 minutes ago.';
} else {
ageElement.innerHTML = 'More than 5 minutes ago.';
}
});
}, 1000);
});
<div class="questions">
</div>
Я не попробовал это, но насколько я могу определить на основе документации, которую позволяет пользовательская реализация стратегии именования, Вы для перезаписи таблицы/имен столбцов таким образом также позволяете Вам заключить им в кавычки.
Вам необходимо добавить
<property name="hbm2ddl.keywords">auto-quote</property>
в конфигурацию NHibernate.