2017-01-25 44 views
0

我正在嘗試使用node.js構建網站。我想要在不刷新頁面的情況下加載內容。我熟悉AJAX的方式。但是,有人有任何想法,如何使用NodeJs實現相同?使用nodeJs無頁面刷新的網站

這裏是目前我在做什麼(我不認爲這是唯一的方法):

將在所有的GET請求之間的中間件(如在任何刷新 行動,將有GET請求)。在這裏,發送所有基本的 組件的網站(我稱之爲主要階段)。所有基本的 佈局,樣式表都被加載。

當請求完成時,客戶端根據當前地址觸發XHR請求 。該請求返回需要 的html作爲內容顯示。

當XHR完成時,將檢索到的HTML設置爲我的「主要內容」 iFrame。

有人可以告訴我,有沒有其他方法可以做同樣的事情?

謝謝。

+1

即使與nodejs相同(:只需使用expressjs添加一些路由並從客戶端執行ajax響應。 – num8er

回答

1

我已經有很多運氣是使用插件gulp連接Gulp。我正在用Node.js和Express.Js構建一個API,但仍然訴諸於Gulp來實現我的所有自動化,而不管項目類型如何。

http://gulpjs.com/

使用咕嘟咕嘟打開很多門,以提高您的工作流程的自動化,如涅槃的代碼,圖像壓縮,複製/粘貼文件等

希望你有儘可能多的運氣也和我一樣。

這是它如何尋找你的服務器。

// Add requiements 
var gulp  = require ('gulp'), 
    connect  = require ('gulp-connect'); 


var jsSources; 


//Setup path variables 

jsSources = [ 
        'builds/development/components/scripts/*.js' 
       ]; 


//Javascript Files 
gulp.task('js', function(){ 
    gulp.src(jsSources) 
     .pipe(connect.reload()) 
}); 

// Watch all sources file directorys and run tasks if changes happen. 
gulp.task('watch', function(){ 
    gulp.watch(jsSources, ['js']); 

}); 


// Start a server for project. 
gulp.task('connect', function(){ 
    connect.server({ 
    root : '', 
    livereload : true, 
    fallback: 'builds/development/index.html' 
    }); 
}); 


// Run all tasks above by using default command "Gulp". 
gulp.task('default', ['watch', 'connect']); 

一旦這是建立你只CD在termincal並鍵入咕嘟咕嘟

0

這類型的網站被稱爲單分頁的網站...你可以加載一個頁面,而無需刷新頁面。

您可以通過使用ajax和history.pushState()函數來實現此目的。

首先通過使用ajax向服務器發送獲取請求來加載頁面。

當服務器在響應中發送.html頁面時,將該頁面加載到div元素上。

同時您還可以使用history.pushState()函數更改瀏覽器歷史記錄。

使頁面看起來更改而不刷新。