JavaScript实现统一管理的提示语(message)方案

作者:半夏

时间:2026-10-29

浏览:207

本文介绍如何在JavaScript中统一管理项目内的提示语。通过将后端缓存的消息加载到前端,封装get和alert方法,实现简洁高效的提示语调用,便于后续国际化处理。

文章目录

统一提示语管理的必要性

在Web项目开发过程中,各个页面及业务操作均会涉及提示信息。为了更高效地管理大量的message,采用统一管理机制是更优的选择。这种集中式管理方式不仅规范了代码结构,也为后续实现国际化(i18n)提供了极大的便利。

推荐的架构方案是利用数据库集中存储所有提示语内容。在项目启动阶段,系统会将这些提示语一次性加载至内存或缓存存储中,确保后续请求能够快速响应。

对于Java后端如何实现这一机制,技术实现相对简单。本文重点探讨如何在JavaScript前端有效调用这些已缓存的提示语。为此,我们对前端交互进行了简单封装,旨在提供清晰的思路和简便的使用方式,供开发者参考。

前端封装实现步骤

第一步,创建message.jsp文件,具体代码实现如下:


<%-- <%@ page import="com.xxx.xxx.xxx.xxx.I18nManager" %> --%>
<%@ page language="java" pageEncoding="UTF-8"%>
function I18nManager() {
this.init;
this.messages;
};
I18nManager.prototype = {
get : function(id, args) {
if (!this.init) {
this.messages = new Array();
// 这里可以使用Java代码的方法读取服务端已经缓存好的消息提示语
<%-- this.messages['charset'] = "<%= I18nManager.get(user, "charset") %>"; --%>
<%-- this.messages[''] = "<%= I18nManager.get(user, "") %>"; --%>
<%-- this.messages['M0001'] = "<%= I18nManager.get(user, "M0001") %>"; --%>
<%-- this.messages['M0002'] = "<%= I18nManager.get(user, "M0002") %>"; --%>
<%-- this.messages['M0003'] = "<%= I18nManager.get(user, "M0003") %>"; --%>
<%-- this.messages['M0004'] = "<%= I18nManager.get(user, "M0004") %>"; --%>
<%-- this.messages['M0005'] = "<%= I18nManager.get(user, "M0005") %>"; --%>
<%-- this.messages['M0006'] = "<%= I18nManager.get(user, "M0006") %>"; --%>
<%-- this.messages['ui.title.user'] = "<%= I18nManager.get(user, "ui.title.user") %>"; --%>
<%-- this.messages['ui.title.xview'] = "<%= I18nManager.get(user, "ui.title.xview") %>"; --%>
<%-- this.messages['ui.title.xview.memo'] = "<%= I18nManager.get(user, "ui.title.xview.memo") %>"; --%>
<%-- this.messages['ui.title.xviewPointList'] = "<%= I18nManager.get(user, "ui.title.xviewPointList") %>"; --%>
<%-- this.messages['ui.title.sherpaOracle'] = "<%= I18nManager.get(user, "ui.title.sherpaOracle") %>"; --%>
// 或者可以静态设置一些提示语
this.messages['M0001'] = "操作成功!"; 
this.messages['M0001'] = "操作失败!"; 
this.init = true;
}
var message = this.messages[id];
if (!message && message !== "") {
return id;
}
if (args) {
if (typeof args == "object" && args.length) {
for (var i = 0; i < args.length; i++) {
var pattern = new RegExp("\\{" + i + "\\}", "g"); 
message = message.replace(pattern, args[i]);
}
} else {
message = message.replace(/\{0\}/g, args);
}
}
return message;
},
alert : function(id, args) {
alert(this.get(id, args));
}
};
var i18n = new I18nManager();

在上述代码中,“操作成功”和“操作失败”为静态硬编码的默认值。关键在于利用JSP中的动态Java代码,读取服务端在系统启动后已缓存的全部消息提示语,并将其动态赋值给this.message[‘xxxx']对象,从而完成前后端数据的对接。

第二步,探讨如何在具体页面中调用这些提示语。


window.onload = function(){
i18n.alert('M0001');
//alert(i18n.get('M0001'));
}

开发者可以直接使用封装好的get和alert方法进行调用。当然,根据实际业务需求,也可以在此基础上扩展自定义方法,以满足更复杂的使用场景。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章