2012-11-15 138 views
3

我遇到類似的情況this chap我想在同一應用程序中使用dart:io和dart:html。我知道dart:io是服務器端庫,dart:html是客戶端。我的情況如下。我有一個程序來輸出大量的文本到日誌文件。我發現Dart擅長文本處理。我想採取日誌文件的文本,操縱它,爲了可讀性而在標題textareas中放一些信息,然後查看頁面。dart:io和dart:html是互斥的

我不打算把它放在網上。這只是我的工作電腦。我只想要dart:io的文件加載功能和dart:html的漂亮顯示。以前的帖子是在四月份,Dart的發展很快。現在是否有另一種做我想做的事情的方式?

我知道我可以編寫一個程序來建立一個HTML文件,在相應的字段中操縱文本,然後打開該HTML文件,但我不喜歡這個主意之多。有另一種方法嗎?

+0

當你說,「dart:html的好顯示」時,你指的是什麼? –

+0

TextAreas和TextFields等等。 –

+0

我認爲爲HTML元素創建一個字符串和使用DOM實際創建該元素是有區別的。這就是爲什麼在服務器上使用dart:html沒有意義的原因之一。該服務器沒有DOM。當然,在服務器上使用DOM代表一個HTML頁面,然後將其序列化爲HTML可能會很有趣,但聽起來就像html5lib正在做的那樣(儘管我沒有使用它)。 –

回答

3

您可以考慮使用服務器端應用程序這個庫html5lib生成HTML輸出。那麼這只是在瀏覽器中打開文件的問題。這也可以通過調用啓動啓動瀏覽器的進程並指向您生成的html文件來實現自動化。

html5lib仍處於進展中的工作,但我敢肯定,他們想聽聽您的意見。

0

我不同意,如果你想要做的是建立一個靜態的網頁,然後使用一個lib像html5lib可能是最好的。但是,如果您想要做更多的事情,我認爲要走的路線是將服務器端飛鏢視爲模型,將客戶端視爲「休息」。什麼剩下的就是大多取決於如果你喜歡MVC,MVP ......

我已經接近開發鏢一個桌面應用程序,但我還沒有發現一個有趣的例子足以讓我去。我一直在想如何做到這一點,我相信通過使用網絡套接字連接雙方(模型和「其餘」),製作簡單的序列化協議(例如json),您可以輕鬆創建rpc與客戶端封裝使用noSuchMethod()作爲代理,並在服務器端使用鏡像。如果您喜歡使用Web套接字,您可以以其他方式創建回調。我相信Gilad在his talk from the HTML5 Dev Conf中提到了一種類似的rpc技術。

無論如何,你會得到的是dart:iodart:html在同一個「應用程序」,但應用程序將由服務器端和客戶端組成。這是我將嘗試爲我的下一個桌面應用程序,不管那將是:)