Demo

討論

保持飢餓,保持愚笨 (Stay hungry, stay foolish)。 史蒂夫·賈伯斯

公告

本網站已取消討論區的討論方式,如果您有問題請至LINE群行動條碼圖片網址,或Facebook社團

如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次

  • Watt Lin
  • Watt Lin 的個人頭像 Topic Author
  • 訪客
  • 訪客
2009-07-14 11:48 #14764 來自 Watt Lin
Watt Lin created the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次
我發現Joomla的載入,在不同的地方,耗時不等,我家裡看可能3秒,但某些人的網路頻寬比較窄,可能會等7-8秒以上。
瀏覽器第一次載入的過程,整個畫面是空白。

我想到一種方法,第一次載入的過程,讓畫面顯示一張圖,瀏覽者比較不會感覺一片空白。
index.html 的優先順序高於 index.php
所以把 mysite.com (舉例用,不是我真正的網址) 根目錄下index.html作兩個框架
mainFrame佔 100%高度,用來顯示一張照片
bottomFrame佔 0%高度,用來放 index.php,Joomla載入於此,但畫面看不到。

等5秒鐘之後,index.html裡的<meta content="5; url=http://mysite.com/index.php" http-equiv="refresh" /> 發生作用,
瀏覽器原頁面index.html變成index.php


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="5; url=http://mysite.com/index.php" http-equiv="refresh" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>index</title>
</head>
<frameset rows="100%,0%" frameborder="NO" border="0" framespacing="0">
<frame src="main.html" name="mainFrame" title="mainFrame">
<frame src="index.php" name="bottomFrame" scrolling="NO" noresize title="bottomFrame">
</frameset>


第一次載入的畫面,問題算是解決了,
接下來要面對的問題是,按了Home回到網站首頁,
它是指向 http://mysite.com
而http://mysite.com 預設為 http://mysite.com/index.html ,不是http://mysite.com/index.php
所以每次按了Home都會再顯示照片,等候幾秒才進入Joomla。
把 <meta> 裡頭的 5秒改成2秒,仍然需要等 bottomFrame 的 Joomla載入。

現在,我希望只有第一次載入顯示照片,
之後每次按 Home(回到首頁) 不必顯示照片。

可能要修改 mainFrame,讓它包含一段php或者javascript,
判斷Joomla是否已載入,然後決定要不要顯示照片。

請高手提供方法,謝謝!

實際網站,請看 http://cw.dhi.idv.tw

Please 登入 to join the conversation.

  • Watt Lin
  • Watt Lin 的個人頭像 Topic Author
  • 訪客
  • 訪客
2009-07-14 12:14 #14766 來自 Watt Lin
Watt Lin replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次
我自己重新思考,使用php解決的機會可能不大,因為php碼是在伺服器端處理。

我遇到的問題在使用者端,所以解決方案很可能是寫一段javascript
判斷Joomla未曾載入,或已載入。

也許php碼有一些可能,
利用 referral 網址判斷,
以前曾經看別人寫的php碼,
但我php不熟,自己一時寫不出來。

Please 登入 to join the conversation.

  • cmsrookie
  • cmsrookie 的個人頭像
  • 訪客
  • 訪客
2009-07-14 16:37 #14776 來自 cmsrookie
cmsrookie replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次

Watt Lin 寫了道:: 第一次載入的畫面,問題算是解決了,
接下來要面對的問題是,按了Home回到網站首頁,
它是指向 http://mysite.com
而http://mysite.com 預設為 http://mysite.com/index.html ,不是http://mysite.com/index.php


如果將原來的選單項目 Home disabled
然後新建一選單項目
標題依然叫做 Home
1. 類型使用外部連結,連結設為 /index.php
或是
2. 類型使用文章→首頁
這樣子試試扶不符合您的需要

Please 登入 to join the conversation.

  • Watt Lin
  • Watt Lin 的個人頭像 Topic Author
  • 訪客
  • 訪客
2009-07-14 16:56 #14777 來自 Watt Lin
Watt Lin replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次
感謝您的回答,新增Menu果然成功。

但是我若把它當作預設,整個畫面載入便會發生錯誤,
舊的Home也不能改成disabled。

所以現在有兩個 Home
一個是中文的 『回到首頁』一個是英文的 Home
不知要如何disable英文的Home ?

還請高手再指導

Please 登入 to join the conversation.

  • Watt Lin
  • Watt Lin 的個人頭像 Topic Author
  • 訪客
  • 訪客
2009-07-14 17:24 #14779 來自 Watt Lin
Watt Lin replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次
採用兩個Home的方法,大概算是失敗了。

原先我只注意到版面上方,
後來仔細看,文章全不見了!
修改選單設定,改了幾種,也未能解決,
所以先把第二個Home刪了,就恢復正常。

接下來,我可能考慮用php碼去判斷 HTTP_REFER
但今天嘗試的php程式,尚未成功。

Please 登入 to join the conversation.

  • cmsrookie
  • cmsrookie 的個人頭像
  • 訪客
  • 訪客
2009-07-14 17:28 #14780 來自 cmsrookie
cmsrookie replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次
哈哈

我忘了無法取消預設選單項目的發佈狀態
如果您確定後來更改的選單
確實就是您希望的
那就去更改該選單的類型吧

至於

但是我若把它當作預設,整個畫面載入便會發生錯誤,

就不清楚是怎麼回事
我沒遇過這種情形了

Please 登入 to join the conversation.

More
2009-07-15 14:20 #14795 來自 Winterrise
Winterrise replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次

Watt Lin 寫了道:: 我發現Joomla的載入,在不同的地方,耗時不等,我家裡看可能3秒,但某些人的網路頻寬比較窄,可能會等7-8秒以上。
瀏覽器第一次載入的過程,整個畫面是空白。

我想到一種方法,第一次載入的過程,讓畫面顯示一張圖,瀏覽者比較不會感覺一片空白。
index.html 的優先順序高於 index.php
所以把 mysite.com (舉例用,不是我真正的網址) 根目錄下index.html作兩個框架
mainFrame佔 100%高度,用來顯示一張照片
bottomFrame佔 0%高度,用來放 index.php,Joomla載入於此,但畫面看不到。

等5秒鐘之後,index.html裡的<meta content="5; url=http://mysite.com/index.php" http-equiv="refresh" /> 發生作用,
瀏覽器原頁面index.html變成index.php


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="5; url=http://mysite.com/index.php" http-equiv="refresh" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>index</title>
</head>
<frameset rows="100%,0%" frameborder="NO" border="0" framespacing="0">
<frame src="main.html" name="mainFrame" title="mainFrame">
<frame src="index.php" name="bottomFrame" scrolling="NO" noresize title="bottomFrame">
</frameset>


第一次載入的畫面,問題算是解決了,
接下來要面對的問題是,按了Home回到網站首頁,
它是指向 http://mysite.com
而http://mysite.com 預設為 http://mysite.com/index.html ,不是http://mysite.com/index.php
所以每次按了Home都會再顯示照片,等候幾秒才進入Joomla。
把 <meta> 裡頭的 5秒改成2秒,仍然需要等 bottomFrame 的 Joomla載入。

現在,我希望只有第一次載入顯示照片,
之後每次按 Home(回到首頁) 不必顯示照片。

可能要修改 mainFrame,讓它包含一段php或者javascript,
判斷Joomla是否已載入,然後決定要不要顯示照片。

請高手提供方法,謝謝!

實際網站,請看 http://cw.dhi.idv.tw


我看了你的網站,其實首頁速度慢是因為include了太多的css和javascript

你是用Joomla 1.5架的站嗎,你選擇的Template可能本來還有些特異功能,所以才include了一堆的css,javascript

1.試著換一個精簡的template,你會發現速度會快上許多
2.或是到後台把template先備份好,試著把Template用不到的script直接砍掉
3.Cache一定要打開
4.用不到的Manbot請關掉
5.檢查每一個元件及模組,有cache的一定要打開
6.看起來你有在用系統的SEF,建議你改用sh404SEF

你需要的是Joomla的優化,如果你有點預算的話,我可以幫你安裝一些商業版的優化元件
不過你的Template一定要減肥

Please 登入 to join the conversation.

  • Watt Lin
  • Watt Lin 的個人頭像 Topic Author
  • 訪客
  • 訪客
2009-07-15 19:55 #14802 來自 Watt Lin
Watt Lin replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次

Winterrise 寫了道:: 我看了你的網站,其實首頁速度慢是因為include了太多的css和javascript
你是用Joomla 1.5架的站嗎,你選擇的Template可能本來還有些特異功能,所以才include了一堆的css,javascript

1.試著換一個精簡的template,你會發現速度會快上許多
2.或是到後台把template先備份好,試著把Template用不到的script直接砍掉
3.Cache一定要打開
4.用不到的Manbot請關掉
5.檢查每一個元件及模組,有cache的一定要打開
6.看起來你有在用系統的SEF,建議你改用sh404SEF

你需要的是Joomla的優化,如果你有點預算的話,我可以幫你安裝一些商業版的優化元件
不過你的Template一定要減肥

感謝您的回答!
我可能短期間內暫時不換Template
因為本院恰好正在作各科室網頁評比
等評比結束,到時候時間充裕才重新選擇合適的Template

現在用的是Joomla 1.5.12
我會先嘗試把不用的東西關掉,解決慢速的問題。
謝謝!

Please 登入 to join the conversation.

  • Watt Lin
  • Watt Lin 的個人頭像 Topic Author
  • 訪客
  • 訪客
2009-07-16 14:25 #14810 來自 Watt Lin
Watt Lin replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次
我試著一種可能有效的方法,解決我原先提出的問題:
修改 .htaccess

RewriteEngine On
RewriteCond %{HTTP_REFERER} (^http://cw\.dhi\.dhi\.tw) [NC]
RewriteRule /index.html http://cw.dhi.idv.tw/index.php [L]

我的目的是:
第一次進站,載入 index.html,其第二框架頁包含 index.php
第二次以上,直接載入 index.php

本來以為會成功,實際上,又失敗了。

我推測失敗原因在於,點按Joomla的Home
其連結為http://cw.dhi.idv.tw
而非http://cw.dhi.idv.tw/index.html
因為無 index.html
所以不會被改寫到 index.php

Please 登入 to join the conversation.

More
2009-07-16 23:13 #14811 來自 asika32764
asika32764 replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次
增加效能,可以嘗試看看靜態化

但我沒實際使用過,建議你將這篇討論串整個讀完,應該有些幫助

但SEF必須全開才行

http://www.joomlagate.com/component/option,com_smf/Itemid,31/topic,3695.0/




純粹優化Joomla可以參考這篇文章

http://blog.asikart.com/-joomla-31/114-20-joomla-15-cms.html

飛鳥新樂園 - http://blog.asikart.com
大學好好玩 - http://funni.cc
Joomla!123教學網 - http://joomla123.com.tw

Please 登入 to join the conversation.

  • Watt Lin
  • Watt Lin 的個人頭像 Topic Author
  • 訪客
  • 訪客
2009-07-17 12:50 #14818 來自 Watt Lin
Watt Lin replied the topic: 如何寫php碼判斷Joomla在瀏覽器載入第一次或不止一次
很感謝大家的熱心回答,我提的問題,算是得到解決了。

因為在醫院工作,最近有全院各單位的網頁評比,大家希望成績不要拿太低。
我發現某幾個單位也是用Joomla架站,作起來比其他單位好。

我單位所用的虛擬主機是在美國,由本院連出的對外頻寬不夠,以致發生第一次載入要久等情形,
在我家瀏覽,其實速度很快。

為了讓人感覺第一次載入不要出現空白畫面等很久,就放了一張照片,等載入後,自動切換框架頁。
之前使用 index.html
今天把醫院網站連結到科網站的 link 改用 http://cw.dhi.idv.tw/index.htm
那麼第一次載入 會讀 index.htm 檔,
之後按了 Home 會連到網址根目錄,沒指定檔名,預設優先順序 index.html index.php index.htm
而 index.html 已刪除,這時 index.php 便會讀入。

我原先所遇到的問題就解決了。


其實還有一些問題沒想到過,畢竟自己不是資訊業。
網友們提供的 SEF, Cache 以及優化,都是很寶貴的意見,
有時間我會再深入研究瞭解。
謝謝大家的熱心回應!

Please 登入 to join the conversation.