是否可以使用AJAX加載完整網頁,我將如何處理它?使用AJAX加載網頁
我在想,我可以像平常一樣創建單獨的頁面,然後使用AJAX以某種方式獲取該頁面,並將其呈現在用戶當前所在的位置。這是否是正確的假設?
基本上我打算做一個更加動態的網站,所以當用戶點擊一個選項時,它會向下滾動並顯示請求的信息,沒有明顯的頁面重定向。
任何建議將是偉大的。
謝謝。
是否可以使用AJAX加載完整網頁,我將如何處理它?使用AJAX加載網頁
我在想,我可以像平常一樣創建單獨的頁面,然後使用AJAX以某種方式獲取該頁面,並將其呈現在用戶當前所在的位置。這是否是正確的假設?
基本上我打算做一個更加動態的網站,所以當用戶點擊一個選項時,它會向下滾動並顯示請求的信息,沒有明顯的頁面重定向。
任何建議將是偉大的。
謝謝。
jQuery的.load(URL)方法加載HTML直接進入的元素。因此,如果您將每個<一個>標記更改爲頂級元素上的.load(),則可以執行此操作。這有點像使用框架,但是定位DIV而不是框架。
當然它會破壞很多的東西,像後退按鈕,表格,以便搬運等等等等,除非你把大量的工作英寸
,就像醫生告訴時候誰「這傷害我這樣做的時候「回答」那麼不要那麼做「,答案可能是」不這樣做「。
是的可用性問題是我試圖牢記的事情之一。指出後退按鈕很好。 – diggersworld 2011-01-28 12:27:22
是的,這是可能的。您可以從純JavaScript中創建一個頁面/網站,從Web服務或類似的處理程序中獲取所有元素。儘管如此,這仍然是一場噩夢,並且根據您的需求遇到各種各樣的問題。我將它作爲學習jQuery,AJAX和其他一些事情的練習。我發現表單提交變得棘手。雖然數據通過AJAX發佈到Web服務中,但管理頁面狀態變得非常複雜,並且隨着網站需求的增長,它只會變得噩夢。
我還發現,爲了實現這個目標,您必須選擇在轉換期間刷新整個界面,或者只是更改部分。刷新整個界面非常麻煩,對於「快速」用戶來說,AJAX可能無法跟上。它也會導致Web服務請求發生衝突。如果您的頁面有4個獨立的部分正在更新,那麼Web服務請求會在中間「丟失」並不常見,而不會更新。
所以你的問題的答案是「是」。仔細閱讀你的問題,我會將你的請求範圍保留在單獨的顯示頁面上,而不需要太多的功能。保持它越簡單,維護和使用就越容易。
我知道這是一箇舊帖子,但這是一個很好的小腳本,可以完成這項工作。它可以將ajax內容加載到現有的非Ajax站點。需要jQuery。
<script type="text/javascript">
//Your navigation bar, can be "document" or body
var $navigation = $(".side");
//Your main content that will be replaces
var body = ".page";
var $body = $(body);
$navigation.delegate("a", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});
$(window).bind('hashchange', function() {
var newHash = window.location.hash.substring(1);
if(newHash) {
$body.fadeOut(200, function() {
$body.hide().load(newHash + " " + body, function() {
$body.fadeIn(200, function() {
});
});
});
};
});
$(window).trigger('hashchange');
</script>
所有在$導航鏈接將有一個click事件添加到他們,將更新窗口的URL哈希值。該窗口正在監聽散列更改,並將使用散列值發出AJAX請求來重新加載$ body html。
欲瞭解更多信息和例子中看到:http://css-tricks.com/video-screencasts/85-best-practices-dynamic-content/
可能的,但inadvi黑貂 - 如果你重寫整個頁面,你並沒有利用任何真正的好處。你的使用案例並沒有讓你聽起來像你需要這樣做,只是修改了AJAX頁面的SOP部分。 – annakata 2011-01-28 11:50:37