JavaScript controller pattern
-
You're probably familiar with the MVC pattern. It's a good fit for most webapps, but what do you do when you want to redirect to different web frameworks with the same controller? If you're this major bank, you write a JavaScript function.
Have to think this has something to do with the slow login. Just clocked 42 seconds from login to page rendering on a decent connection.
function doLogin() {
var f = document.forms[0];
var dd = f['objContent0_ctl05_loginOption'];switch (dd.options[dd.selectedIndex].value) { case 'pf': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = 'https://www.citizensbankonline.com'; break; case 'cs': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = 'https://www.citizensbankmoneymanagergps.com'; break; case 'cc':window.location.href = 'https://www.accessmycardonline.com/RBS_Consumer/SecuredLogin.do?promoCode=CTZ'; break; case 'mor':window.location.href = 'https://carenet.fnfismd.com/cco/ACCLogin.jsp'; break; case 'sl':window.location.href = '/student-services/access-my-student-loan/'; break; case '401k': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = '/401K_notice.aspx'; break; case 'bk':window.location.href = 'https://www.mystreetscape.com/my/citizensinvest'; break; case 'ctp':window.location.href = '/customer-service/pay-my-loan.aspx'; break; } } function doLoginHelper(action) { if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); var f = document.forms[0]; var dd = f['objContent0_ctl05_loginOption']; switch (dd.options[dd.selectedIndex].value) { case 'pf': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); switch (action) { case 'enroll': window.location.href = 'https://www.citizensbankonline.com/efs/servlet/efs/default-enroll.jsp?BrandSettingsFile=citSettings.jsp'; break; case 'LoginTrouble': window.location.href = 'https://www.citizensbankonline.com/efs/servlet/efs/login-assistance.jsp'; break; } break; case 'cs': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = 'https://www.citizensbankmoneymanagergps.com'; break; case 'cc': window.location.href = 'https://www.accessmycardonline.com/RBS_Consumer/SecuredLogin.do?promoCode=CTZ'; break; case 'mor': window.location.href = 'https://carenet.fnfismd.com/cco/ACCLogin.jsp'; break; case 'sl': window.location.href = '/student-services/access-my-student-loan/'; break; case '401k': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = '/401K_notice.aspx'; break; case 'bk': window.location.href = 'https://www.mystreetscape.com/my/citizensinvest'; break; case 'ctp': window.location.href = '/customer-service/pay-my-loan.aspx'; break; }
-
Fixed this for you:
function doLogin() { var f = document.forms[0]; var dd = f['objContent0_ctl05_loginOption']; switch (dd.options[dd.selectedIndex].value) { case 'pf': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = 'https://www.citizensbankonline.com'; break; case 'cs': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = 'https://www.citizensbankmoneymanagergps.com'; break; case 'cc':window.location.href = 'https://www.accessmycardonline.com/RBS_Consumer/SecuredLogin.do?promoCode=CTZ'; break; case 'mor':window.location.href = 'https://carenet.fnfismd.com/cco/ACCLogin.jsp'; break; case 'sl':window.location.href = '/student-services/access-my-student-loan/'; break; case '401k': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = '/401K_notice.aspx'; break; case 'bk':window.location.href = 'https://www.mystreetscape.com/my/citizensinvest'; break; case 'ctp':window.location.href = '/customer-service/pay-my-loan.aspx'; break; } } function doLoginHelper(action) { if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); var f = document.forms[0]; var dd = f['objContent0_ctl05_loginOption']; switch (dd.options[dd.selectedIndex].value) { case 'pf': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); switch (action) { case 'enroll': window.location.href = 'https://www.citizensbankonline.com/efs/servlet/efs/default-enroll.jsp?BrandSettingsFile=citSettings.jsp'; break; case 'LoginTrouble': window.location.href = 'https://www.citizensbankonline.com/efs/servlet/efs/login-assistance.jsp'; break; } break; case 'cs': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = 'https://www.citizensbankmoneymanagergps.com'; break; case 'cc': window.location.href = 'https://www.accessmycardonline.com/RBS_Consumer/SecuredLogin.do?promoCode=CTZ'; break; case 'mor': window.location.href = 'https://carenet.fnfismd.com/cco/ACCLogin.jsp'; break; case 'sl': window.location.href = '/student-services/access-my-student-loan/'; break; case '401k': if (window.dcsMultiTrack) dcsMultiTrack('DCS.dcsuri', '/onlinebanking/login.asp', 'WT.ti', 'Online Banking Login'); window.location.href = '/401K_notice.aspx'; break; case 'bk': window.location.href = 'https://www.mystreetscape.com/my/citizensinvest'; break; case 'ctp': window.location.href = '/customer-service/pay-my-loan.aspx'; break; }
-
@cmccormick said:
You're probably familiar with the MVC pattern. It's a good fit for most webapps, but what do you do when you want to redirect to different web frameworks with the same controller? If you're this major bank, you write a JavaScript function.
So, either they're loading things from lots of different sites (or one site that DNS is having problems looking up), or they've wedged a vast quantity of crap onto the page that must be loaded before the page can render. The browser's page developer tools would probably tell you which quite rapidly.Have to think this has something to do with the slow login. Just clocked 42 seconds from login to page rendering on a decent connection.
-
@dkf said:
@cmccormick said:
You're probably familiar with the MVC pattern. It's a good fit for most webapps, but what do you do when you want to redirect to different web frameworks with the same controller? If you're this major bank, you write a JavaScript function.
So, either they're loading things from lots of different sites (or one site that DNS is having problems looking up), or they've wedged a vast quantity of crap onto the page that must be loaded before the page can render. The browser's page developer tools would probably tell you which quite rapidly.Have to think this has something to do with the slow login. Just clocked 42 seconds from login to page rendering on a decent connection.
I don't see any of those thing in this code - aside from an unnecessary code repetition, which probably would slow things down by a milisecond or two (unless it's a coding pattern on that site). It seems like a switch-redirect which would redirect you to one of those pages. Then again, I'm not a JS expert.
-
@Maciejasjmj said:
I don't see any of those thing in this code
Nor do I; I'm guessing that the real problems are elsewhere. But ranting about the inability of people to tell us about real WTFs seems a little churlish, so I took the opportunity to comment just based on the text description. (It was more interesting than some poor — but not very poor — code.)