GoAhead5 - 嵌入式Javascript

一. 前言

        GoAhead提供了一个Javascript的嵌入式版本,用于JST页面中。由于完整的Javascript 6规范是一个相当大的语言,GoAhead的实现了一个适合嵌入式使用的小子集。GoAhead Javascript™是Javascript的一个严格的子集,实现了该语言的基本元素。它还为JST页面提供了引擎,使动态网页的创建变得容易。

        作为一个独立的产品,Embedthis Ejscript™更全面地支持最新的Javascript 6规范,当与Appweb嵌入式网络服务器一起使用时,如果你有足够的可用内存,它是GoAhead的替代品。

二. 嵌入式Javascript使用

        当GoAhead Javascript在JST网页内使用时,它由JST定界符内的脚本组成。基本的格式如下:

<% function(arguments, ...); %>

        Javascript函数是由jsSetGlobalFunction创建的。当函数被评估时,实现Javascript函数的相应C程序被调用。

举例:

        嵌入式主要是用于将系统的数据显示到web页面上,当刷新页面时,嵌入到web的回调函数将被调用,如下:

static int form_syslog(int ejid, Webs *wp, int argc, char **argv)
{
    if (1 == argc)
    {
        if (!strcmp(argv[0], "syslog.priority_error"))
        {
            if (4 == ....)
            {
                websWrite(wp, "%s", "selected");
            }
        }
        else if (!strcmp(argv[0], "syslog.priority_warning"))
        {
            if (5 == ....)
            {
                websWrite(wp, "%s", "selected");
            }
        }
        else if (!strcmp(argv[0], "syslog.priority_notice"))
        {
            if (6 == ....)
            {
                websWrite(wp, "%s", "selected");
            }
        }
        else if (!strcmp(argv[0], "syslog.priority_info"))
        {
            if (7 == ....)
            {
                websWrite(wp, "%s", "selected");
            }
        }
        else if (!strcmp(argv[0], "syslog.priority_debug"))
        {
            if (8 == ....)
            {
                websWrite(wp, "%s", "selected");
            }
        }
        else if (!strcmp(argv[0], "syslog.log_size"))
        {
            websWrite(wp, "%s", _uci_get("syslog[0].log_size"));
        }
        else if (!strcmp(argv[0], "syslog.position_ram"))
        {
            if (0 == ...)
            {
                websWrite(wp, "%s", "selected");
            }
        }
        else if (!strcmp(argv[0], "syslog.position_rom"))
        {
            if (1 == ...)
            {
                websWrite(wp, "%s", "selected");
            }
        }
        else if (!strcmp(argv[0], "syslog.position_console"))
        {
            if (2 == ...)
            {
                websWrite(wp, "%s", "selected");
            }
        }
    }

    return 0;
}

/* web html节选 */
<form method="post" action="/action/syslog" class="syslog-form">
	<p>
		<label>priority:</label>
		<select name="syslog.priority">
			<option value="4" <% form_syslog("syslog.priority_error"); %> >error</option>
			<option value="5" <% form_syslog("syslog.priority_warning"); %> >warning</option>
			<option value="6" <% form_syslog("syslog.priority_notice"); %> >notice</option>
			<option value="7" <% form_syslog("syslog.priority_info"); %> >info</option>
			<option value="8" <% form_syslog("syslog.priority_debug"); %> >debug</option>
		</select>
	</p>
</form>

        当如下html代码由GoAhead发送到客户端之前,会先调用form_syslog,将<% %>中的内容替换为form_syslog调用webWrite写的内容。

三. 总结

        本文介绍了GoAhead内嵌的JavaScript的作用,举例了基本的使用方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值