微信移動端招聘項目總結

      樂帝目前實習單位屬於招聘服務提供方,面向的都是企業方,沒有互聯網公司一擲千金的豪氣,體現在開發項目上,有的項目沒有原型、UI,整個項目開發過程,就是前後端“腦補”的過程,而這個過程是非常考驗工程師理解力和對產品設計的功力的。最近從事的微信移動端招聘當屬此列。

    PC端招聘進行的如火如荼,而就像各行各業未來都是互聯網企業一樣,移動化是互聯網現在及未來不可逆的趨勢。那麼爲什麼又選擇微信端,而不是移動網站或app呢。app問題在於發佈改動較大的新版本,除非逼迫用戶升級,否則用戶是體驗不到新功能、新設計的。而招聘這屬於工具類的需求,實在不能對使用者即HR有太高的需求,“永遠不要高估用戶的智力”。移動網站與app類似都不能對用戶有太高期待,這裏不是說移動網站需要升級,而是不能對用戶使用移動瀏覽器輸入網址有太高期望。這樣推下來,微信用戶羣廣,用戶較爲熟知,且加微信公衆號較簡單,後臺更新方便,是比較合適的招聘業務突破口。

   微信招聘系統分爲三個主功能塊:任務管理、用戶管理、幫助中心。

    上述主功能模塊下又有子模塊。任務管理模塊下有:面試反饋模塊、offer審批模塊、職位審批模塊、篩選簡歷模塊。用戶管理模塊下有用戶解綁模塊。幫助中心則爲主模塊。

   主要頁面流程如下:


    任務管理模塊下四個子模塊,進入展示的頁面都分爲未完成和已完成的任務列表,只是根據接口不一樣,設置頁面標題不同。

     任務列表分爲未完成和已完成兩部分數據,數據列表項設置單擊事件,跳轉到任務詳情頁。任務詳情頁有幾個按鈕。按鈕下方則是通過iframe引入的簡歷。單擊按鈕會進入評價頁。

     offer審批模塊及職位審批模塊都採用上述頁面跳轉邏輯,區別僅在於任務詳情頁按鈕是兩個而不是三個。篩選簡歷模塊則在任務詳情頁之前,多出一層篩選列表頁面。

    綁定頁面則是通過用戶輸入郵箱,發送到服務器,用戶發送成功,會要求用戶掃描二維碼。

    在掃二維碼成功後,會有個提示頁,提示用戶再度用公衆號使用招聘功能,此時用戶已經與公衆號實現綁定。

    解綁模塊,則設置一個按鈕用於解綁,當解綁成功設置提示。

     依照上述項目邏輯,將項目文件定界爲usercheck(用戶驗證頁)、checklogin(登錄成功頁)、UnlockUser(用戶解綁頁)、Main(用戶進入任務管理通用頁:任務列表)、Detail(面試反饋詳情頁)、offerOrJobDetail(offer審批和職位審批詳情頁)、filterDetail(篩選簡歷詳情頁)、filterList(篩選列表)、Helpinfo(幫助中心頁)。

    接下來就是開發階段了,如上所述,此項目沒有思維導圖、原型圖、UI圖,上述邏輯依靠腦補所得,開發階段涉及四個階段:

  • 完成初步接口調試
  • 完成大致頁面邏輯
  • 公司內部測試、尋求改良意見
  • 綜合建議、對尺寸、UI、內容提示、邏輯進行優化
    項目實現:

    項目採用技術是jquery mobile,jquery mobile特點是高度集成化,另外在開發過程中由於微信端不方便調試,所以採用的方法是將類似代碼放到本地,調試好,再將相應樣式放到微信端代碼中。

    jquery mobile加入許多默認樣式,此時如實現自定義UI :

 data-role="none"

         是非常有用的一句代碼。

   任務列表項,則通過設置循環綁定監聽事件,構造了單個列表項跳轉邏輯。同時設置加載更多按鈕,每次多加載10項。

data-role="page"

        上述jquery mobile中設置div類型爲page的代碼,也節省了頁面跳轉邏輯,僅適用錨點就可以實現內部切換頁面,因爲任何時候jquery mobile只展示一個data-role爲page的頁面。

   用代碼控制頁面跳轉

//將頁面url,類型,數據定義爲變量來傳遞。
var pageData = { url: formresults.php, type: 'get', data:$('form#myform').serialize () };
$.mobile.changePage(pageData);

             本項目中頁面跳轉更多使用window.location.href,用到上述代碼方法只在後期添加過渡效果時,纔開始用,因爲此頁面跳轉可以實現data-role爲page的內部跳轉,也可以實現外部文件頁面間跳轉,未來項目使用$.mobile.changePage(pageData);此方法實現跳轉,更加符合jquery mobile規範,同時格式化更加方便。

    爲了設置加載提示與當前頁面在同一個頁面,採用了changePage方法後,查看代碼可知,之前的page被設置爲display:none。此時若設置其display:block即可同時顯示。

    任務列表中未完成和已完成兩項、任務詳情和評價頁、後期添加過渡效果響應Ajax請求頁面都採用此方法。

    任務詳情頁,有一個iframe引入應聘者簡歷,此處iframe引入的URL與當前項目不在一個域,無法設置iframe內部頁面樣式或尺寸,這裏處理是將iframe寬度設100%。

    頁面跳轉用到一個jquery cookie插件,用來保存openid即用戶掃碼後獲取的標識,頁面中跳轉需要保持對用戶的識別,這裏將用戶信息保存到cookie中。

    在用戶掃碼後採用了微信開發平臺接口,用於關閉當前網頁。

    在本項目中採用了大量的ajax請求,而移動端網絡訪問環境各異,所以在各種事件觸發ajax請求之前,設置一個加載中提示,並在ajax成功返回請求後,關閉此提示,將會對用戶非常友好。

//全站ajax加載提示
(function ($) {

    var str = '<div class="ajax-status" style="display: none;">'
            +    '<div class="ajax"><img src="' + publicPath + 'img/loading.gif" width="20" height="20" />數據加載中...</div>'
            +'</div>';

    var dom = $(str).prependTo('body');

    $(document).ajaxStart(function(){
        dom.stop(true,false).queue(function(){
            $(this).show().dequeue();
        });
    });

    $(document).ajaxStop(function(){
        dom.queue(function(){
            $(this).hide().dequeue();
        });
    });

})(jQuery);

             實現思路與上述代碼類似,即在ajax發送請求前,顯示提示加載信息,在ajax請求完成,隱藏提示信息。設置按鈕防止重複提交也與此類似,區別在於設置標誌位,用條件判斷返回,還是設置按鈕disable屬性。標誌位:

 var flag = true;
    $("input[type='submit']").click(function(){
      if(!flag)
      {
        return
      }
      flag = false;
    })
  })

   設置disable屬性:

(function ($) {
    
    $('.J-login').click(function () {
    
        var loginBtn = this;
        
        //1.先進行表單驗證
        //......
        
        //2.讓提交按鈕失效,以實現防止按鈕重複點擊
        $(loginBtn).attr('disabled', 'disabled');
        
        //3.給用戶提供友好狀態提示
        $(loginBtn).text('登錄中...');
        
        //4.異步提交
        $.ajax({
            url: 'login.do',
            data: $(this).closest('form[name="loginForm"]').serialize(),
            type: 'post',
            success: function(msg){
                
                if (msg === 'ok') {
                    alert('登錄成功!');
                    
                    //TODO 其他操作...
                } else {
                    alert('登錄失敗,請重新登錄!');
                    
                    //5.讓登陸按鈕重新有效
                    $(loginBtn).removeAttr('disabled');
                }
    
            }
        });
        
    });
    
})(jQuery);


   下面是內測後,改進意見整理:


    針對上述改進意見,樂帝總結出一些以後注意的問題:

    內容提示(使用戶操作流暢、交互及沒有數據時保證正常邏輯)、UI樣式統一、適當大小、居中等問題、樣式要鮮明區分、去掉不適合的邊框。

    總體來說,此項目需要實現的佈局及交互都相對簡單,難點在於理解後臺對項目的描述上,這時候項目的進度取決於對項目的理解程度上,所以做項目並不僅僅是敲代碼,對特定行業業務邏輯的瞭解,將有助於項目的快速實現。其次移動端項目儘量輕交互,當樂帝在加頁面提示時,才發現整個項目運用了太多ajax請求,項目有點重了,有些請求可以後臺直接渲染,要比異步體驗好一些。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章