Pure Dart DOM的可能性?

时间:2013-12-29 02:05:56

标签: dart single-page-application dart-html

我正在学习Dart并突然顿悟(或可能,顿悟):

  

我可以编写一个Dart网络应用,其中“视图”在Dart中完成100%吗?

我在说:绝对没有(无/零/ nadda)HTML文件(.html)。 100%Dart代码。类似的东西:

class SigninView {
    LabelElement signinLabel;
    InputElement emailTextField;
    InputElement passwordTextField;
    ButtonElement signinButton;

    // constructors, getters, setters, etc.

    // Perhaps called from inside constructor...
    void initUI() {
        signinLabel = new LabelElement();
        signinLabel.innerHTML = "<span class=\"blah\">Please sign in</span>";

        emailTextField = new InputElement();
        emailTextField.innerHTML = "<input type=\"text\" name=\"fizz\" placeholder=\"Email\"/>";

        // ...etc.

        // htmlFactory would be something I'd need to write myself (?)
        String html = htmlFactory.newHTML(signinLabel, emailTextField, ...);

        querySelector("#someDivTag").innerHTML = html;
    }
}

理论上(也就是我对上述代码的意图),一旦SigninView被创建,它就会初始化一堆DOM元素并用它们填充someDivTag

  1. 这可能吗?如果是这样,我“做得对”,还是有不同/首选/标准化的做法?
  2. 这是否会引入我应该注意的任何其他/潜在警告(内存泄漏),性能或安全问题?
  3. 如果我在整个应用程序中采用这种策略,我可以假设应用程序下载速度更快(HTML文本更少),但执行速度更慢(动态DOM元素创建)吗?如果是这样,有没有办法以某种方式实例化我的应用程序将需要的所有DOM元素(减慢初始下载时间),然后只使某些元素可见,因为我希望呈现不同的视图/屏幕(从而加快执行时间)?

1 个答案:

答案 0 :(得分:1)

您需要一个带有Dart启动脚本标记的HTML文件。 其他任何事都可以用Dart完成。