2009-10-20 47 views
0

我有兩個小程序A和B.它們嵌入在不同的頁面中。在銷燬時,A將對象序列化到本地文件系統。在init中,B對這些對象進行反序列化。這個設置在Windows中工作正常。不幸的是,我發現它在Mac OS X中不起作用。這是因爲B在A銷燬之前被初始化。有誰知道是否有一些小程序參數或設置或配置或解決方法,這將允許Mac OS X Java插件的行爲類似於Windows?Mac OS X中的Applet生命週期

瀏覽器:FF 3.0 操作系統:Mac OS X 10.4 Java插件版本:1.5.0_06

+0

也許以前我不調用使用JavaScript從網頁A,這種方法的理解這個權利,但是如果他們在不同的頁面上,A之前的B init如何被銷燬?用A打開頁面,關閉它,然後用B號打開頁面。對不起,我的無知 – jitter 2009-10-20 08:16:09

+0

不能這樣做。 A的頁面提交給B的頁面。 – 2009-10-20 10:09:57

回答

1

你只是幸運,這已經在Windows下工作,甚至在Windows上,該行爲可能是瀏覽器特定。根據API文檔,當包含此applet的Web頁面被另一個頁面替換時,applet的stop方法將被調用,並且destroy方法將在stop方法之後被調用。注意'when ... has been'而不是'before ... will be'。簡而言之,如果用applet B替換帶有applet A的HTML頁面和帶有applet B的HTML頁面,applet API將無法確保applet B的某些方法在applet B處於啓動或啓動之前被調用並完成。

如果您啓用小程序腳本編寫,你不過實現了一種保存在小程序的方法,甚至嘗試加載頁面B.