2012-06-22 34 views
0

我目前正在研究基於Web的教育工具,學生可以在瀏覽器中查看代碼示例並編輯瀏覽器中的代碼。我一直試圖實現一個系統,通過它們可以與客戶端編譯器進行交互,並在瀏覽器中運行/調試代碼。我做的研究越多,瀏覽器的設計就越多,因爲這會造成安全問題。我想知道是否有任何方法來在本地運行編譯器,即通過擴展或ajax或其他方法。通過任何東西從瀏覽器啓動客戶端編譯器

儘管我們已經開始使用python,但其目的是儘可能地適應多種語言。

我知道我可以運行腳本服務器端並顯示輸出但是這是有限的應用程序(據我所知),特別是關於圖形用戶界面。

+0

Python解釋器在服務器端 http://www.udacity.com/view#Course/cs262/CourseRev/apr2012/Unit/3001/Nugget/47004 – SRN

+0

作爲攻擊者,我會對你可以這樣做,因爲我可以粘貼一個任意代碼並讓它在客戶端編譯並運行,而不受任何限制。 – nhahtdh

+0

這個想法是,學生是唯一一個有權訪問文檔欄的老師,它不是一個公開的論壇,任何人都可以發佈任何內容,並且它可以運行在每個人的電腦上。我明白,涉及到很多潛在的安全風險,但我認爲如果創建得當,它將沒有更多的風險,即與svn鏈接的ide。 – user1473696

回答

0

我需要爲project of mine這樣做(雖然不是編譯器)。它必須下載並處理一個給定URL的資源,並將其格式化爲可以在kindle上閱讀的格式。它與你的不完全相似,因爲我有一個瀏覽器插件(而不是網頁),它觸發了操作,甚至不允許「離開」瀏覽器。

最後,我被迫寫了一個在客戶端運行的小應用程序,插件將URL提交併處理。

的設置是這樣的

browser plugin (via ajax) <------> web app on client ----> compiler/etc. 

瀏覽器發送的代碼段(在你的情況,在我的URL)發送到Web應用程序,在本地機器監聽某個端口上運行(比如9999 )。它可以訪問本地資源,因此可以實際運行代碼,然後將某些內容返回給可以呈現它的瀏覽器。

在我的情況下,瀏覽器發送一個JSON字符串到只包含一個URL的Web應用程序。 Web應用程序獲取資源,對其進行處理並將其轉換爲kindle可以讀取的.mobi文件,然後將其放入目錄中。轉換結果(成功/失敗)和轉換文件的位置將發送回瀏覽器,通知您已完成。

我不認爲你可以編寫一個直接訪問編譯器的插件。它必須與本地應用進行通信。非技術用戶的設置非常複雜(查看我的項目上的自述文件),但它工作正常。

+0

這很漂亮:)。 因此,一個可能的解決方案是創建一個插件,當用戶點擊編譯/運行時,插件將信息發送到桌面上運行的應用程序,然後訪問並編譯這段代碼?還是你建議我創建一個插件,直接訪問已安裝的編譯器並啓動代碼。 我在一個插件無法直接啓動桌面應用程序的前提下運行。我有這個錯誤嗎? – user1473696

+0

我已經更新了我的答案。 –

相關問題