<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=JavaScriptMVC</id>
	<title>JavaScriptMVC - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=JavaScriptMVC"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=JavaScriptMVC&amp;action=history"/>
	<updated>2026-06-28T22:44:49Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=JavaScriptMVC&amp;diff=1870886&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot：​补救3个来源，并将0个来源标记为失效。) #IABot (v2.0.7</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=JavaScriptMVC&amp;diff=1870886&amp;oldid=prev"/>
		<updated>2020-12-09T05:47:11Z</updated>

		<summary type="html">&lt;p&gt;补救3个来源，并将0个来源标记为失效。) #IABot (v2.0.7&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software&lt;br /&gt;
| name = JavaScriptMVC&lt;br /&gt;
| logo = [[Image:Javascriptmvc.png|192px]]&lt;br /&gt;
| developer = Justin B. Meyer, Brian Moschel&lt;br /&gt;
| operating_system = [[跨平台]]&lt;br /&gt;
| programming_language = [[JavaScript]]&lt;br /&gt;
| license = [[MIT License]]&amp;lt;ref name=&amp;quot;github.com/jupiterjs/javascriptmvc&amp;quot;&amp;gt;{{cite web|url=https://github.com/jupiterjs/javascriptmvc/blob/master/MIT-LICENSE.txt/|title=Javascipt MVC license|publisher=jupiterjs|accessdate=16 April 2012}}{{dead link|date=2017年11月 |bot=InternetArchiveBot |fix-attempted=yes }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| website = {{URL|www.javascriptmvc.com}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;JavaScriptMVC&amp;#039;&amp;#039;&amp;#039; 是一套[[開放原始碼]]的[[多樣化網際網路應用程式]][[軟體框架|框架]]，以 [[jQuery]] 與 [[OpenAJAX]] 為基礎。JavaScriptMVC 利用 [[MVC]] 架構與工具擴展這些[[函式庫]]，以便開發與測試。由於 JavaScriptMVC 不需要任何伺服器端的配合，因此它可以和任何的網站服務介面與程式語言整合，如 [[ASP.NET]]、[[Java]]、[[Perl]]、[[PHP]]、[[Python]] 或 [[Ruby]]。&lt;br /&gt;
&lt;br /&gt;
== 歷史 ==&lt;br /&gt;
JavaScriptMVC 的第一個版本是在2008年5月釋出。穩定版的 JavaScriptMVC 2.0 在2009年6月釋出，並以 jQuery 為基礎。主要開發目標為維持程式碼的簡短和專注在它獨特的功能上。3.0版本在2010年12月釋出。而從  JavaScriptMVC 中所獨立出來的 MVC 架構「[[CanJS]]」則在2012年4月釋出。&lt;br /&gt;
&lt;br /&gt;
== 控制器 ==&lt;br /&gt;
控制器（Controller）是由許多函式所組成，這些函式會在適當的事件發生時被呼叫。函式名稱提供這些函式被呼叫時的描述。只要正確地命名函式，控制器就能夠辨認這些函式並在正確的時機呼叫它們。舉例來說：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 $.Controller(&amp;#039;TodosController&amp;#039;,{&lt;br /&gt;
   &amp;quot;.todo mouseover&amp;quot;: function(el, ev){&lt;br /&gt;
     el.css(&amp;quot;backgroundColor&amp;quot;,&amp;quot;red&amp;quot;)&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;.todo mouseout&amp;quot;: function(el, ev){&lt;br /&gt;
     el.css(&amp;quot;backgroundColor&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;#create_todo click&amp;quot; : function(){&lt;br /&gt;
     this.find(&amp;quot;ol&amp;quot;).append(&amp;quot;New Todo&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
 });&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在控制器中也可以處理 OpenAjax 事件，例如：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 $.Controller(&amp;#039;TodosController&amp;#039;,{&lt;br /&gt;
   &amp;quot;main.test subscribe&amp;quot;: function(ev, publisherData){&lt;br /&gt;
     // TODO: do something&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;other.event subscribe&amp;quot;: function(ev, publisherData){&lt;br /&gt;
     // TODO: do something&lt;br /&gt;
   }&lt;br /&gt;
 });&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 視圖 ==&lt;br /&gt;
JavaScriptMVC 使用 EJS 樣板來處理控制器裡的 HTML 資料並且將它們插入 [[文件物件模型|DOM]] 中。這些語法是借鏡自 [[ERuby]]，且與 [[PHP]] 或其他伺服器端語言的樣板引擎相似。&lt;br /&gt;
&lt;br /&gt;
以「test.ejs」（data = [ &amp;quot;Hello&amp;quot;, &amp;quot;World&amp;quot; ]）為例：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;% for( var i=0, len = data.length; i &amp;lt; len; i++ ) { %&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;&amp;lt;%= data[i] %&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;% } %&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
這會輸出如下的結果：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Hello&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;World&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 模型 ==&lt;br /&gt;
模型（Model）類別提供了組織應用程式資料層級的基本功能。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 $.Model(&amp;#039;Todo&amp;#039;,{&lt;br /&gt;
  findAll: &amp;#039;/todos&amp;#039;,&lt;br /&gt;
  findOne: &amp;#039;/todos/{id}&amp;#039;,&lt;br /&gt;
  create: &amp;#039;/todos&amp;#039;,&lt;br /&gt;
  update: &amp;#039;/todos/{id}&amp;#039;&lt;br /&gt;
  destroy : &amp;#039;/todos/{id}&amp;#039;&lt;br /&gt;
 },{});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 測試 ==&lt;br /&gt;
JavaScriptMVC 還提供了一套完整的測試外掛，支援模型的單元測試，以及需要處理事件驅動結構的功能性測試。測試工具可以在 [[Rhino]] 引擎的命令列模式執行。&lt;br /&gt;
&lt;br /&gt;
== 參考資料 ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== 外部連結 ==&lt;br /&gt;
*[https://web.archive.org/web/20120901073622/http://javascriptmvc.com/ 官方網站] {{en}}&lt;br /&gt;
*[https://github.com/jupiterjs/javascriptmvc GitHub 專案]{{Wayback|url=https://github.com/jupiterjs/javascriptmvc |date=20191017191113 }} {{en}}&lt;br /&gt;
*[http://code.google.com/p/javascriptmvc/ Google Code 上的舊專案頁面]{{Wayback|url=http://code.google.com/p/javascriptmvc/ |date=20100215023311 }} {{en}}&lt;br /&gt;
&lt;br /&gt;
[[Category:網站開發]]&lt;br /&gt;
[[Category:AJAX]]&lt;br /&gt;
[[Category:JavaScript]]&lt;br /&gt;
[[Category:MVC]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>