[请益] 把资料丢在 html 里还是用 js 处理?

楼主: hijkxyzuw (i,j,k) ×(x,y,z)   2016-08-28 16:41:23
最近在做一个仓颉输入法练习软件,
用 html + css + js 写的。
我想建立一个物件可以依仓颉输入法输出字根。
( cangJieDecode['hapi'] // 输出 '的' )
可以把仓颉字根对应资料丢在 js 或 html 里。
js 的话我的程式会超级长......,所以我没有,
我是认为资料应该和程式分开。
但分开就是丢到 html 里了......。
一开始是在 for 循环里存取 dom 来建立 cangJie 的属性。
<tr>
<td alt="hapi">的</td>
<td alt="vfbtv">网</td>
....
</tr>
// 大概是这样
// for(var i=0; i<tr.length; i++)
// cangJie[td.alt] = td.textContent;
但后来发现浏览器要解析会很慢,
就改成存在一个标签里,要用再用 javascript 解析。
<pre>
的hapi
网vfbtv
就yfiku
...
</pre>
// var array = pre.textContent.split('\n');
// for(var i=0; i<array.length; i++){
// var s = array[i];
// cangJie[s.substr(1)] = s.charAt(0);
后来我想嵌入 flickr 或其它网站的图片,
或比较复杂的 html ,像:
<p>
欢迎你进入 <strong>仓颉练习</strong> !
如果遇到困难可以参见 <a href="help.html">使用说明</a> 。
</p>
如果用 js 创建会很麻烦。
所以我是丢在 html 里,用 css 让她不显示。
需要的时候 clone 或 move 出来。
上面两项我觉得我的处理方法不错,不知道各位怎么想。
最后我想做一个键盘的图。
js 中至少要有方法: keyboard.highLight('a');
// 让画面上该字改变颜色或做变化,
// 应该是由改 css class 来达成。
那我应该把 html 写成:
<div id="keyboard">
<div>手田水口廿卜山戈人心</div>
...
</div>
或是
<div>
<span alt="q">手</span>
<span alt="w">田</span>
...
</div>
如果是第一种方法,我得在 js 里动态把内容改成第二种,
因为要可以让每个字个别变化,要每个字都是 html 元素。
或是直接用第二种就好了?
***************
打完全文我觉得好像直接写成第二种就好了......,
毕竟才 25 个字,解析起来应该不会差太多。
只是到时候我还是要用 js 一个个存取 dom 抓资料。
这是我的程式,我的第一个 js 程式。
可能写的很烂,也请不吝赐教。
https://gholk.github.io/cjns/exercise.html
另外我还不会用 ajax ,目前也不打算用。
不然把资料存在 json 里,好像还不错。
(我让这个程式可以离线跑。)
作者: zoko741235 (台北金城武)   2016-08-28 17:02:00
资料还是存在 JS 或 JSON 吧
作者: oToToT (屁孩)   2016-08-28 17:33:00
觉得弄个JSON存著,然后JS把它吃进来比较好
作者: ssccg (23)   2016-08-28 18:40:00
你搞错了,html是view,不是data要把程式逻辑和分开,也不会用html存资料只要放在另一个js档就好了,不管是js还是json,
作者: kyleJ (资工人)   2016-08-29 12:41:00
推 要把程式逻辑和分开,也不会用html存资料
作者: ssccg (23)   2016-08-29 12:41:00
所以你觉得你的转换程式中的对照表,对网页来说是content?那还问什么,就用html啊
作者: kyleJ (资工人)   2016-08-29 12:42:00
另外不使用AJAX也还是能用JSON 两者没有直接关系
作者: ssccg (23)   2016-08-31 02:21:00
如果只用在这个网页,可能可以算是content,但是如果哪天要把这支程式放在别的网页,很明显那个表是js程式的data而不是网页的contentjson格式本身就是合法的js物件,加个var data = 就可以直接当js用,.json只是给输入只吃json的用,资料格式是没什么差

Links booklink

Contact Us: admin [ a t ] ucptt.com