如何让“睡渣宝宝”一夜好眠
“孩子晚上躺在床上好几个小时,翻来覆去,怎么都睡不着。”
“为啥别人家孩子一觉睡到大天亮,我家孩子每天夜里醒好多次,睡不踏实?”
出门诊时,我发现因失眠前来就诊的孩子越来越多,也经常听到家长这样描述自家的“睡渣宝宝”。失眠不仅影响孩子的身心发育,还对他们的学习和日常生活造成严重的负面影响。了解孩子失眠的表现、成因以及如何改善睡眠,对于帮助孩子从失眠走向好眠至关重要。
识别孩子失眠的表现
儿童青少年失眠通常表现为以下几种形式。
1.入睡困难:孩子上床后需要20分钟以上才能入睡。
2.夜间觉醒:夜间频繁醒来,或醒后再次入睡超过20分钟。
3.早醒:比预期的起床时间早半小时以上,并且无法再次入睡。
4.睡眠质量差:虽然睡眠时间似乎足够,但孩子依然感到没有恢复体力,白天表现出疲倦感。
5.白天行为改变:睡眠不足可能导致孩子白天出现易怒、情绪波动、注意力不集中和学习困难等情况。
6.白天嗜睡:部分失眠的孩子会在白天表现出过度困倦,甚至在课堂上打瞌睡。
长期失眠不仅会影响孩子的睡眠质量,还可能损害他们的大脑发育、认知功能和学习能力。此外,睡眠不足还可能导致免疫力下降,增加躯体疾病和焦虑、抑郁等精神障碍的患病风险。
多重因素引起失眠
儿童青少年失眠成因复杂,涉及生理、心理、社会与环境等多个因素,常见原因主要包括以下几点。
1.生理因素。
身体发育和生物节律变化:青春期是生物钟发生显著变化的时期之一,由于激素变化、褪黑素分泌变化等,孩子的生物钟会自然延后,这也是儿童青少年群体普遍晚睡晚起的原因之一。
身体疾病:慢性疾病如哮喘、过敏性鼻炎、湿疹等会影响孩子的夜间睡眠质量,引起频繁觉醒。
神经发育问题:患有孤独症谱系障碍等神经发育问题的孩子常常伴有入睡困难和夜间频繁觉醒的问题。
2.心理问题或精神障碍。
焦虑:家庭变故或社交问题会让孩子产生焦虑情绪,这些情绪常常引发入睡困难、噩梦或夜间频繁觉醒,影响睡眠质量。
心境障碍:患有抑郁症、双相情感障碍的孩子往往存在情绪不稳定、烦躁、过度思虑的症状,这会导致大脑难以放松,进而引发失眠。
3.社会与环境因素。
家庭环境:不良的睡眠环境,如过度明亮或嘈杂的房间、不合适的床垫或枕头,会降低孩子的睡眠质量。此外,家长不规律的作息也会影响孩子的生物钟,使其难以按时入睡。
学习压力:孩子面临的作业、考试和竞争压力日益增加。白天的紧张和焦虑情绪如果未能得到有效释放,常常会在夜间干扰孩子的睡眠。
社交压力:孩子在学校的同伴关系和人际冲突也会引发焦虑、孤独感或自卑情绪,这些情绪可能会持续到夜晚,进而影响其睡眠。
电子设备不当使用:睡前使用手机、平板电脑等电子设备会抑制褪黑素的分泌,推迟入睡时间。同时,玩电子游戏或观看刺激性内容也会影响孩子入睡。
来源:学生健康报
作者:北京大学第六医院睡眠医学中心 马湘雲
审核:国家健康科普专家库成员、北京大学第六医院副院长 孙洪强
版权声明:本文转载仅仅是出于传播信息的需要,并不意味着代表本网站观点或证实其内容的真实性;如其他媒体、网站或个人从本网站转载使用,须保留本网站注明的“来源”,并自负版权等法律责任;作者如果不希望被转载或者联系转载稿费等事宜,请与我们接洽。
已有 0条评论,共0赞
验证码: |
|
最新评论 |
|
element block and removes
// previous instances of the identical script.
var found = false;
for (var child = 0; child < head.childNodes.length; child++) {
var control = head.childNodes[child];
if (typeof(control.tagName) == "string") {
if (control.tagName.toUpperCase() == "SCRIPT") {
if (script.src.length > 0) {
if (script.src == control.src) {
found = true;
break;
}
} else if (script.innerHTML.length > 0) {
if (script.innerHTML == control.innerHTML) {
found = true;
break;
}
}
}
}
}
if (found) {
head.removeChild(control);
}
var scriptAddedToHead = false;
if (typeof script.readyState != "undefined" && !window.opera) {
script.onreadystatechange = function() {
if (script.readyState != "complete" && script.readyState != "loaded") {
return;
} else {
Anthem_LoadPageScript(result, index + 1);
}
}
} else {
if (isExternalScript) // if it's an external script, only execute the next script when the previous one is loaded.
{
script.onload = function() {
Anthem_LoadPageScript(result, index + 1);
}
}
else // I didn't find a way for script blocks to fire some onload event. So in this case directly call the Anthem_LoadPageScript for the next script.
{
document.getElementsByTagName('head')[0].appendChild(script);
scriptAddedToHead = true;
Anthem_LoadPageScript(result, index + 1);
}
}
// Now we append the new script and move on to the next script.
// Note that this is a recursive function. It stops when the
// index grows larger than the number of scripts.
if (!scriptAddedToHead)
document.getElementsByTagName('head')[0].appendChild(script);
}
} catch (e) {
Anthem_DebugError("Error adding page script to head. " + e.name + ": " + e.message);
}
}
}
function Anthem_EvalClientSideScript(result) {
if (result.script) {
for (var i = 0; i < result.script.length; ++i) {
try {
eval(result.script[i]);
} catch (e) {
alert("Error evaluating client-side script!\n\nScript: " + result.script[i] + "\n\nException: " + e);
}
}
}
}
//Fix for bug #1429412, "Reponse callback returns previous response after file push".
//see http://sourceforge.net/tracker/index.php?func=detail&aid=1429412&group_id=151897&atid=782464
function Anthem_Clear__EVENTTARGET() {
var form = Anthem_GetForm();
Anthem_SetHiddenInputValue(form, "__EVENTTARGET", "");
}
function Anthem_InvokePageMethod(methodName, args, clientCallBack, clientCallBackArg) {
Anthem_Clear__EVENTTARGET(); // fix for bug #1429412
return Anthem_CallBack(null, "Page", null, methodName, args, clientCallBack, clientCallBackArg, true, true);
}
function Anthem_InvokeMasterPageMethod(methodName, args, clientCallBack, clientCallBackArg) {
Anthem_Clear__EVENTTARGET(); // fix for bug #1429412
return Anthem_CallBack(null, "MasterPage", null, methodName, args, clientCallBack, clientCallBackArg, true, true);
}
function Anthem_InvokeControlMethod(id, methodName, args, clientCallBack, clientCallBackArg) {
Anthem_Clear__EVENTTARGET(); // fix for bug #1429412
return Anthem_CallBack(null, "Control", id, methodName, args, clientCallBack, clientCallBackArg, true, true);
}
function Anthem_PreProcessCallBack(
control,
e,
eventTarget,
causesValidation,
validationGroup,
imageUrlDuringCallBack,
textDuringCallBack,
enabledDuringCallBack,
preCallBackFunction,
callBackCancelledFunction,
preProcessOut
) {
var valid = true;
if (causesValidation && typeof(Page_ClientValidate) == "function") {
valid = Page_ClientValidate(validationGroup);
}
if (typeof(WebForm_OnSubmit) == "function") {
valid = WebForm_OnSubmit();
}
if (valid) {
var preCallBackResult = true;
if (typeof(preCallBackFunction) == "function") {
preCallBackResult = preCallBackFunction(control, e);
}
if (typeof(preCallBackResult) == "undefined" || preCallBackResult) {
var inputType = control.getAttribute("type");
inputType = (inputType == null) ? '' : inputType.toUpperCase();
if (inputType == "IMAGE" && e != null) {
var form = Anthem_GetForm();
if (e.offsetX) { // IE
Anthem_SetHiddenInputValue(form, eventTarget + ".x", e.offsetX);
Anthem_SetHiddenInputValue(form, eventTarget + ".y", e.offsetY);
} else { // FireFox + ???
var offset = GetControlLocation(control);
Anthem_SetHiddenInputValue(form, eventTarget + ".x", e.clientX - offset.x + 1 + window.pageXOffset);
Anthem_SetHiddenInputValue(form, eventTarget + ".y", e.clientY - offset.y + 1 + window.pageYOffset);
}
}
if (imageUrlDuringCallBack || textDuringCallBack) {
var nodeName = control.nodeName.toUpperCase();
if (nodeName == "INPUT") {
if (inputType == "CHECKBOX" || inputType == "RADIO" || inputType == "TEXT") {
preProcessOut.OriginalText = GetLabelText(control.id);
SetLabelText(control.id, textDuringCallBack);
} else if (inputType == "IMAGE") {
if (imageUrlDuringCallBack) {
preProcessOut.OriginalText = control.src;
control.src = imageUrlDuringCallBack;
} else {
preProcessOut.ParentElement = control.parentElement ? control.parentElement : control.parentNode;
if (preProcessOut.ParentElement) {
preProcessOut.OriginalText = preProcessOut.ParentElement.innerHTML;
preProcessOut.ParentElement.innerHTML = textDuringCallBack;
}
}
} else if (inputType == "SUBMIT" || inputType == "BUTTON") {
preProcessOut.OriginalText = control.value;
control.value = textDuringCallBack;
}
} else if (nodeName == "SELECT" || nodeName == "SPAN") {
preProcessOut.OriginalText = GetLabelText(control.id);
SetLabelText(control.id, textDuringCallBack);
} else {
preProcessOut.OriginalText = control.innerHTML;
control.innerHTML = textDuringCallBack;
}
}
// Disable the control during callback if required
control.disabled = (typeof(enabledDuringCallBack) == "undefined") ? false : !enabledDuringCallBack;
return true;
} else {
// Callback cancelled
if (typeof(callBackCancelledFunction) == "function") {
callBackCancelledFunction(control, e);
}
return false;
}
} else {
// Validation failed
return false;
}
}
function Anthem_PreProcessCallBackOut() {
// Fields
this.ParentElement = null;
this.OriginalText = '';
}
function Anthem_PostProcessCallBack(
result,
control,
e,
eventTarget,
clientCallBack,
clientCallBackArg,
imageUrlDuringCallBack,
textDuringCallBack,
postCallBackFunction,
preProcessOut
) {
if (typeof(postCallBackFunction) == "function") {
postCallBackFunction(control, e);
}
// Re-enable the control if it was disabled during callback
control.disabled = false;
var inputType = control.getAttribute("type");
inputType = (inputType == null) ? '' : inputType.toUpperCase();
if (inputType == "IMAGE") {
var form = Anthem_GetForm();
Anthem_RemoveHiddenInput(form, eventTarget + ".x");
Anthem_RemoveHiddenInput(form, eventTarget + ".y");
}
if (imageUrlDuringCallBack || textDuringCallBack) {
var nodeName = control.nodeName.toUpperCase();
if (nodeName == "INPUT") {
if (inputType == "CHECKBOX" || inputType == "RADIO" || inputType == "TEXT") {
SetLabelText(control.id, preProcessOut.OriginalText);
} else if (inputType == "IMAGE") {
if (imageUrlDuringCallBack) {
control.src = preProcessOut.OriginalText;
} else {
preProcessOut.ParentElement.innerHTML = preProcessOut.OriginalText;
}
} else if (inputType == "SUBMIT" || inputType == "BUTTON") {
control.value = preProcessOut.OriginalText;
}
} else if (nodeName == "SELECT" || nodeName == "SPAN") {
SetLabelText(control.id, preProcessOut.OriginalText);
} else {
control.innerHTML = preProcessOut.OriginalText;
}
}
if (typeof(clientCallBack) == "function") {
clientCallBack(result, clientCallBackArg);
}
}
function Anthem_FireCallBackEvent(
control,
e,
eventTarget,
eventArgument,
causesValidation,
validationGroup,
imageUrlDuringCallBack,
textDuringCallBack,
enabledDuringCallBack,
preCallBackFunction,
postCallBackFunction,
callBackCancelledFunction,
includeControlValuesWithCallBack,
updatePageAfterCallBack
) {
// Cancel the callback if the control is disabled. Although most controls will
// not raise their callback event if they are disabled, the LinkButton will.
// This check is for the LinkButton. See SourceForge Patch 1639700.
if (control.disabled) return;
var preProcessOut = new Anthem_PreProcessCallBackOut();
var preProcessResult = Anthem_PreProcessCallBack(
control,
e,
eventTarget,
causesValidation,
validationGroup,
imageUrlDuringCallBack,
textDuringCallBack,
enabledDuringCallBack,
preCallBackFunction,
callBackCancelledFunction,
preProcessOut
);
if (preProcessResult) {
var eventType = e.type;
Anthem_FireEvent(
eventTarget,
eventArgument,
fu